数据结构 实验一

上传人:工**** 文档编号:447342008 上传时间:2023-01-04 格式:DOC 页数:15 大小:71.50KB
返回 下载 相关 举报
数据结构 实验一_第1页
第1页 / 共15页
数据结构 实验一_第2页
第2页 / 共15页
数据结构 实验一_第3页
第3页 / 共15页
数据结构 实验一_第4页
第4页 / 共15页
数据结构 实验一_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据结构 实验一》由会员分享,可在线阅读,更多相关《数据结构 实验一(15页珍藏版)》请在金锄头文库上搜索。

1、实验报告课程名称: 数据结构 实验项目: 线性表的顺序存储结构 专业班级: 计算机科学与技术1303班 姓 名: 宁相如 学 号: 130405324 实验室号: 信息220 实验组号: 24 实验时间: 2015.4.24 批阅时间: 指导教师: 王宏生 成 绩: 沈阳工业大学实验报告(适用计算机程序设计类)专业班级: 计算机1303班 学号: 130405324 姓名: 宁相如 实验名称:线性表的顺序存储结构1.实验目的(1)会定义线性表的顺序存储类型;(2)掌握线性表的一些基本操作和具体的函数定义。2.实验内容(1)输入一组整型元素序列,建立顺序表。(2)实现该顺序表的遍历。(3)在该顺

2、序表中进行顺序查找某一元素,查找成功返回1,否则返回0。(4)判断该顺序表中元素是否对称,对称返回1,否则返回0。(5)实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。(6)输入整型元素序列利用有序表插入算法建立一个有序表。(7)利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。(8)编写一个主函数,调试上述算法。3.实验方案(程序设计说明) 存储定义 #define MAXSIZE 100 /表中元素的最大个数 typedef struct list ElemType elemMAXSIZE; /静态线性表 int length; /表的实际长度 SqList;

3、/顺序表的类型名4.实验程序(见附件A) 1附件A 沈阳工业大学实验报告(适用计算机程序设计类)专业班级: 计算机1303班 学号: 130405324 姓名: 宁相如 实验程序:#includeusing namespace std;#define MAXSIZE 100static int k=0;typedef struct listint elemMAXSIZE; /静态线性表int length; /表的实际长度SqList; /顺序表的类型名void InitList(SqList &L) /初始化线性表 L.length=0;void CreateList(SqList &L)

4、/建立顺序表 coutL.length; /输入表长 coutInput the elements:; for(int i=1;iL.elemi-1; /输入元素 k+; if(getchar()=n) break; void Traverse(SqList &L) /顺序表的遍历 for(int i=1;i=L.length;i+) if (i-1)%10=0) coutendl; /每行显示10个元素 cout(L.elemi-1) ; /输出表中元素 coutendl;int Insert(SqList &L,int i,int e) /在顺序表L中第i个位之前插入元素e , i的范围是

5、0-L.length-1 int OVERFLOW=0; if(iL.length) return 0; if (L.length=MAXSIZE) exit(OVERFLOW); /表满,不能插入 for(int j=L.length;j=i-1;j-) L.elemj=L.elemj-1; /元素后移 L.elemi-1=e; /插入e L.length+; /表长加 return 0;int Find1(SqList &L,int m1) /按值查找元素m1static int p=1;for(int i=1;i=L.length;i+)if(L.elemi-1!=m1)continue

6、; coutFind Success!Its Location is:iendl; /查找成功,输出其位置 p=0;if(p)coutFind Failure!Its NOT Exist!endl;return 0;int Find2(SqList &L,int m2) /据位置m2查找元素 if(m2L.length)cout查找位置非法!endl;elsecout查找成功!所查找元素为:L.elemm2-1endl;return 0; void Symmetry(SqList &L) /判断对称性int p=0;for(int i=1;i(k)/2;i+)if(L.elemi=L.elem

7、k-1-i)p=1; /若对称,则返回 1 if(p)coutIts Symmetrical!endl;elsecoutIts NOT Symmetrical!endl;void BackEvenNumber(SqList &L) /奇数排在偶数之前int temp; int i=0; int flag = 0; while(L.elemi%2 = 0 & iL.length) i+; flag = 1; if(i = 0) while(L.elemi%2 = 1 & iL.length) i+; flag = 1; if(flag) i-; if(L.elemi%2=0 & i=L.leng

8、th-1) return ; int j=0; while(L.elemj%2 = 1 & jj) temp = L.elemi; L.elemi = L.elemj; L.elemj = temp; temp = i; i = j; j = temp; while(iL.length-1 & jL.length-1) i+;while(L.elemi%2 = 0 & ij;k-) L.elemk = L.elemk-1; L.elemj = temp; while(jL.length&L.elemj%2 = 1) j+; void Sort(SqList &L) /冒泡排序法,升序for(i

9、nt m=0;mL.length-1;m+)for(int n=0;nL.elemn+1)int t=L.elemn;L.elemn=L.elemn+1;L.elemn+1=t;Traverse(L);void SequentialList(SqList &L,int s) /输入整型元素序列利用有序表插入算法建立一个有序表CreateList(L);couts;for(int j=L.length;j=1;j-) L.elemj=L.elemj-1; /元素后移 L.elem1=s; /插入e L.length+; /表长加 coutOrdered List Is:;Sort(L);void MergeList(SqList &L1,SqList &L2,SqList &L3) /合并两个有序表,非降序排列 coutBuild List 1:endl;CreateList(L1);coutBuild List 2:endl;CreateList(L2);InitList(L3);L3.length=L1.length+L2.length;int r=0,s=0,t=0;while(rL1.length & sL2.length)if(L1.elemr = L2.elems)L3.elemt+ = L1.elemr+

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号