1、1一、上机实验的问题和要求:顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求:1. 从键盘输入 10 个整数,产生顺序表,并输入结点值。2. 从键盘输入 1 个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;若找不到,则显示“找不到” 。3. 从键盘输入 2 个整数,一个表示欲插入的位置 i,另一个表示欲插入的数值 x,将 x 插入在对应位置上,输出顺序表所有结点值,观察输出结果。4. 从键盘输入 1 个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。二、源程序及注释:#include #include /*顺序
2、表的定义:*/#include#define ListSize 100 /*表空间大小可根据实际需要而定,这里假设为 100*/typedef int DataType; /*DataType 可以是任何相应的数据类型如 int, float 或 char*/typedef struct DataType dataListSize; /*向量 data 用于存放表结点*/int length; /*当前的表长度*/SeqList;void main()SeqList L;int i,x;int n=10; /*欲建立的顺序表长度*/L.length=0;void CreateList(SeqL
3、ist *L,int n);void PrintList(SeqList L,int n);int LocateList(SeqList L,DataType x);void InsertList(SeqList *L,DataType x,int i);void DeleteList(SeqList *L,int i);CreateList( /*建立顺序表*/PrintList(L,n); /*打印顺序表*/printf(“输入要查找的值:“);scanf(“%d“,i=LocateList(L,x); /*顺序表查找*/printf(“输入要插入的位置:“);scanf(“%d“,pri
4、ntf(“输入要插入的元素:“);2scanf(“%d“,InsertList( /*顺序表插入*/PrintList(L,n); /*打印顺序表*/printf(“输入要删除的位置:“);scanf(“%d“,DeleteList( /*顺序表删除*/PrintList(L,n); /*打印顺序表*/*顺序表的建立:*/void CreateList(SeqList *L,int n)int i;for(i=0;idatai);L-length=n;/*顺序表的打印:*/void PrintList(SeqList L,int n)int i;for(i=0;iL-length +1)pri
5、ntf(“插入位置非法n“);3exit(0);if(L-length =ListSize)printf(“表空间溢出,退出运行n“);exit(0);for(j =L-length-1; j=i-1;j-)L-dataj+1=L-dataj;L-datai-1=x;L-length+;/*顺序表的删除:*/void DeleteList(SeqList *L,int i)int j;if (L-length =0)printf(“现行表为空,退出运行n“);exit(0);if (iL-length)printf(“删除位置非法n“);exit(0);for(j=i;jlength -1;j+)L-dataj-1=L-dataj;L-length -;4三、运行输出结果:四、调试和运行程序过程中产生的问题及采取的措施: