1、1、顺序表基本操作的实现问题描述 在顺序表中查找值为 x 的元素的位置,在线性表的某个位置插入一个元素,删除线性表某个位置的元素。基本要求 要求建立生成顺序表,可以键盘上读取元素,用顺序存储结构实现存储。实现提示 要实现基本操作,可用实现的基本操作,也可设计简单的算法实现。建议步骤1)建立顺序表的存储结构;2)利用 1)的存储结构建立有实际数据的数据表;3)实现查找操作;4)实现插入操作;5)实现删除操作。6)写出 main 函数测试上述操作。实验源码:#include #define MAX 300typedef int ElemType;typedef structElemType dat
2、aMAX;int length;SqList;SqList L;/打印菜单void menu() printf(“*n“);printf(“ 顺序表操作的验证实验n“);printf(“*n“);printf(“ 1、初始化表n“);printf(“ 2、创建表n“);printf(“ 3、按值查询n“);printf(“ 4、在指定位置插入一个元素n“);printf(“ 5、删除指定位置上的一个元素n“);printf(“ 6、输出表n“);printf(“ 0、退出n“);printf(“*n“);/初始化表,置表长为 0void Init(SqList *L)L-length=0;/创
3、建表void Creat(SqList *L)int n,i;printf(“请确定表的长度:“);scanf(“%d“,L-length=n;printf(“请输入数据元素:n“);for(i=1;idatai);printf(“nn 按任意任意键继续 .n“);getch();/显示列表void PrintL(SqList *L)int i;if(L-length=0)printf(“空表,请首先创建表!n“);elseprintf(“n 当前表元素是:n“);for(i=1;ilength;i+)printf(“%d “,L-datai);if(i%10=0) printf(“n“);p
4、rintf(“n“);printf(“nn 按任意任意键继续 .n“);getch();/按值查询void Search(SqList *L)int i,x;printf(“请输入要查询元素的值:“);scanf(“%d“,for(i=1;ilengthi+);if(ilength)printf(“n 元素%d 第一次出现在表中第%d 个位置上!n“,x,i);else printf(“n 表中没有元素 %d !n“,x);printf(“n“);printf(“nn 按任意任意键继续 .n“);getch();/在指定位置上插入一个元素void Insert(SqList *L)int i,
5、j,x;printf(“请确定要插入的位置:“);scanf(“%d“,printf(“请输入要插入的元素值:“);scanf(“%d“,if(L-lengthMAX)printf(“表满!n“);return;if(iL-length+1)printf(“位置错!n“);elsefor(j=L-length;j=i;j-)L-dataj+1=L-dataj;L-datai=x;L-length+;PrintL(L);printf(“nn 插入成功!按任意任意键继续.n“);getch();/删除指定位置上的一个元素void Del(SqList *L)int i,j;printf(“请确定要
6、删除元素的位置:“);scanf(“%d“,if(L-length=0)printf(“空表!n“);elseif(iL-length)printf(“位置错!n“);elsefor(j=i+1;jlength;j+)L-dataj-1 = L-dataj;L-length-;PrintL(L);printf(“nn 删除成功!按任意任意键继续.n“);getch();main()int t;while(1)system(“cls“);menu();printf(“请选择一个操作:“);scanf(“%d“,switch(t)case 1: Init(break;case 2: Creat(b
7、reak;case 3: Search(break;case 4: Insert(break;case 5: Del(break;case 6: PrintL(break;case 0:exit(0);default:printf(“输入错误!请按任意键继续 .n“);getchar();运行截图:2、有序顺序表的合并问题描述 已知顺序表 la 和 lb 中的数据元素按非递减有序排列,将 la 和 lb 表中的数据元素,合并成为一个新的顺序表 lc。基本要求 lc 中的数据元素仍按非递减有序排列,并且不破坏 la 和 lb 表。实验源码:#include #define MAX 200type
8、def int ElemType;typedef structElemType dataMAX;int length;SqList;SqList La,Lb,Lc;/初始化表void Init_List(SqList *L)L-length=0;/创建表void Creat_List(SqList *L)int n,i;printf(“请确定表的长度:“);scanf(“%d“,L-length=n;printf(“请输入数据元素:n“);for(i=1;idatai);/输出表void Print_List(SqList *L)int i;if(L-length=0)printf(“空表,请
9、首先创建表!n“);elseprintf(“n 当前表元素是:n“);for(i=1;ilength;i+)printf(“%d “,L-datai);if(i%10=0) printf(“n“);printf(“n“);/从表中取值void GetElem(SqList *L,int i,ElemType *e)if(i=1/插入:void Insert_List(SqList *L,int i,ElemType e)int j;if(L-lengthMAX)printf(“表满!n“);return;if(iL-length+1)printf(“位置错!n“);elsefor(j=L-le
10、ngth;j=i;j-)L-dataj+1=L-dataj;L-datai=e;+L-length;/合成新表void MergeList()int i,j;ElemType ai,bj;int k=0;i=j=1;while (i=La.length)GetElem(if (ai=bj) Insert_List(+i;else Insert_List( +j;while (i=La.length)GetElem(Insert_List(while (j=Lb.length) GetElem(Insert_List(Lc.length=La.length+Lb.length; / merge_listmain()/初始化表Init_List(Init_List(Init_List(/创建一个测试表Creat_List(Creat_List(Print_List(Print_List(MergeList();Print_List(运行截图: