资源描述:
《顺序表基本操作的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1、顺序表基本操作的实现[问题描述]在顺序表中查找值为x的元素的位置,在线性表的某个位置插入一个元素,删除线性表某个位置的元素。[基本要求]要求建立生成顺序表,可以键盘上读取元素,用顺序存储结构实现存储。[实现提示]要实现基本操作,可用实现的基本操作,也可设计简单的算法实现。[建议步骤]1)建立顺序表的存储结构;2)利用1)的存储结构建立有实际数据的数据表;3)实现查找操作;4)实现插入操作;5)实现删除操作。6)写出main函数测试上述操作。实验源码:#include#defineMAX300typ
2、edefintElemType;typedefstruct{ElemTypedata[MAX];intlength;}SqList;SqListL;//打印菜单voidmenu(){printf("**************************************");printf("顺序表操作的验证实验");printf("**************************************");printf("1、初始化表");printf("2、创建表");printf("3
3、、按值查询");printf("4、在指定位置插入一个元素");printf("5、删除指定位置上的一个元素");printf("6、输出表");printf("0、退出");printf("***************************************");}//初始化表,置表长为0voidInit(SqList*L){L->length=0;}//创建表voidCreat(SqList*L){intn,i;printf("请确定表的长度:");scanf("%d",&n);L
4、->length=n;printf("请输入数据元素:");for(i=1;i<=n;i++)scanf("%d",&L->data[i]);printf("按任意任意键继续...");getch();}//显示列表voidPrintL(SqList*L){inti;if(L->length==0)printf("空表,请首先创建表!");else{printf("当前表元素是:");for(i=1;i<=L->length;i++){printf("%d",L->data[i]);if(i
5、%10==0)printf("");}printf("");}printf("按任意任意键继续...");getch();}//按值查询voidSearch(SqList*L){inti,x;printf("请输入要查询元素的值:");scanf("%d",&x);for(i=1;i<=L->length&&L->data[i]!=x;i++);if(i<=L->length)printf("元素%d第一次出现在表中第%d个位置上!",x,i);elseprintf("表中没有元素%d!
6、",x);printf("");printf("按任意任意键继续...");getch();}//在指定位置上插入一个元素voidInsert(SqList*L){inti,j,x;printf("请确定要插入的位置:");scanf("%d",&i);printf("请输入要插入的元素值:");scanf("%d",&x);if(L->length>MAX){printf("表满!");return;}if(i<1
7、
8、i>L->length+1)printf("位置错!");else{fo
9、r(j=L->length;j>=i;j--)L->data[j+1]=L->data[j];L->data[i]=x;L->length++;}PrintL(L);printf("插入成功!!!按任意任意键继续...");getch();}//删除指定位置上的一个元素voidDel(SqList*L){inti,j;printf("请确定要删除元素的位置:");scanf("%d",&i);if(L->length==0)printf("空表!");elseif(i<1
10、
11、i>L->length)pr
12、intf("位置错!");else{for(j=i+1;j<=L->length;j++)L->data[j-1]=L->data[j];L->length--;}PrintL(L);printf("删除成功!!!按任意任意键继续...");getch();}main(){intt;while(1){system(