收藏 分享(赏)

顺序表基本操作的实现.doc

上传人:精品资料 文档编号:10043274 上传时间:2019-10-01 格式:DOC 页数:8 大小:66.50KB
下载 相关 举报
顺序表基本操作的实现.doc_第1页
第1页 / 共8页
顺序表基本操作的实现.doc_第2页
第2页 / 共8页
顺序表基本操作的实现.doc_第3页
第3页 / 共8页
顺序表基本操作的实现.doc_第4页
第4页 / 共8页
顺序表基本操作的实现.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

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(运行截图:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报