C语言版数据结构:[1]线性顺序表

2025-05-15 21:22:42

1、第一步:线性顺序表的创建。 线性顺序表是存储在一个连续的数组中的,因此对其数据类型有一个结构体声明。#include <stdio.h>#include <stdlib.h>#define MaxSize 20typedef int datatype;typedef struct list{datatype data[MaxSize]; int last;}seqlist;

C语言版数据结构:[1]线性顺序表

3、/*在顺序线性表中i的位置添加元素x*/int insert_seqlist(seqlist *l,datatype x,int i){ int j; if((*l).last > MaxSize) { printf("溢出\n"); return 0; } else if((i<1)||(i>(*l).last+1)) { printf("位置有误\n"); return 0; } else { for(j=(*l).last-1;j>=i-1;j--) (*l).data[j+1] = (*l).data[j]; (*l).data[i-1] = x; (*l).last = (*l).last + 1; return 1; }}/*在顺序线性表中i的位置添加元素x*/

4、第三步:查找元素。 给定元素的值,查找线性表中是否存在该元素,做法是遍历所有线性表中的元素,如果存在则返回元素的位置,否则正常结束。

C语言版数据结构:[1]线性顺序表

7、/*在顺序线性表中i的位置删除元素x*/int del_seqlist(seqlist *l,int i){ int j; if(i>MaxSize) { printf("超出线性表范围。\n"); return 0; } else if(i<1||i>(*l).last) { printf("该节点不存在。\n"); return 0; } else { for(j=i-1;j<(*l).last;j++) (*l).data[j] = (*l).data[j+1]; (*l).last--; return 1; }}/*在顺序线性表中i的位置删除元素x*/

8、第五步:线性表的输出。 将线性表中的所有元素全部输出,每四个一行。

C语言版数据结构:[1]线性顺序表

11、int main(){ seqlist *l; (*l).last = 0; int a; int j; int locate; for(j=1;j<10;j++) { printf("please input number:"); scanf("%d",&a); insert_seqlist(l,a,j); } prf_seqlist(l); locate = search_seqlist(l,5); del_seqlist(l,locate); prf_seqlist(l); system("pause"); return 0;}

12、第七步:测试效果。 从结果我们可以看出,程序运行正常,结果符合预期。

C语言版数据结构:[1]线性顺序表
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢