还剩2页未读,继续阅读
文本内容:
一、上机实验的问题和要求顺序表的查找、插入与删除设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除具体实现要求从键盘输入个整数,产生顺序表,并输入结点值
1.10从键盘输入个整数,在顺序表中查找该结点的位置若找到,输出结点的位置;若找不到,
2.1则显示“找不到”从键盘输入个整数,一个表示欲插入的位置另一个表示欲插入的数值将插入在对应
3.2i,x,x位置上,输出顺序表所有结点值,观察输出结果从键盘输入个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果
4.1
二、源程序及注释#include stdio.h#include stdlib.h/*顺序表的定义*/#includeiostream.h/*表空间大小可根据实际需要而定,这里假设为#define ListSize100100*/可以是任何相应的数据类型如或typedef intDataType;/^DataType int,float char*/typedef struct/*向量用于存放表结点*/{DataType data[ListSize];data/*当前的表长度*/int length;JSeqList;void mainSeqList L;int i,x;/*欲建立的顺序表长度刃int n=10;L.length=0;void CreateListSeqList*L,int n;void PrintListSeqListL,int n;int LocateListSeqListL,DataType x;void InsertListSeqList*L,DataType x,int i;void DeleteListSeqList*L,int i;/*建立顺序表*/CreateListL,n;/*打印顺序表*/PrintListL,n;输入要查找的值”;printf%scanf d”,x;/*顺序表查找*/i=LocateListL,x;输入要插入的位置”;printfscanfn%dn,i;printf输入要插入的元素”;scanfH%dn,x;/*顺序表插入*/InsertListL,x,i;/*打印顺序表*/PrintListL,n;printf输入要删除的位置”;scanfu%dn,i;/*顺序表删除*/DeleteListL,i;/*打印顺序表*/PrintListL,n;/*顺序表的建立*/void CreateListSeqList*L,int nint i;fori=0;in;i++scanfn%dn,L-data[i];L-length=n;/*顺序表的打印*/void PrintListSeqListL,int nint i;fori=0;iL.length;i++cout«L.data[i]«endl;/*顺序表的查找*/int LocateListSeqListL,DataType xint i=0;while iL.lengthL.data[i]!=x;++iif iL.lengthreturn i+1;else return0;/*顺序表的插入刃void InsertListSeqList*L,DataType x,intiintj;ifil||iL-length+1插入位置非法;printf”\nexit0;ifL-length=ListSize”表空间溢出,退出运行printf\n exitO;forj=L-length-l;j=i-l;j—L-data[j+l]=L-data[j];L-data[i-l]=x;L-length++;/*顺序表的删除*/void DeleteListSeqList*L,inti{intj;if L-length==0」现行表为空,退出运行print\n exitO;ifil||iL-length删除位置非法print\n exitO;forj=i;j=L-length-l;j++L-data[j-1]=L-data[j];L-length—;
三、运行输出结果:班人要元置人素要入查要帮自a•H:^g^\Debug\L
2211.exe-7瑞人要删除的位置7045123910Press anykey tocontinue调试和运行程序过程中产生的问题及采取的措施:.03••s.•。