(完整word版)太原理工大学数据结构实验报告.docVIP

(完整word版)太原理工大学数据结构实验报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本科实验报告 课程名称: 数据结 构 实验项目: 线性结构、树形结构、图结构、查找、排 序 实验地点: 行知楼 A210 专业班级: 服工 1302 班 学号: 2013006828 学生姓名: 董 倩 指导教师: 2015年 12 月 24 日 线性结构 一、实验目的和要求 本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式 存储结构上的实现, 提高分析和解决问题的能力。 要求仔细阅读并理解下列例题, 上机通过,并观察其结果,然后独立完成后面的实习题。 二、实验内容和原理 习题 [ 问题描述 ] 设顺序表 A 中的数据元素递增有序,试写一程序,将 使该表仍然有序。 [输入 ] 顺序表的长度,初始化顺序表数据,插入数据 X 。 [输出 ] 已建立顺序表,输出插入 X 后的顺序表。 [存储结构 ] 采用顺序存储结构 [算法的基本思想 ]  x 插入到顺序表的适当位置上, 建立顺序表(用数组的形式实现) 。在表中从后往前查找要插入元素的位置,直到查找到第一个比 X 小的数,并从表的最后一元素依次后移,把要插入元素插入搜查找位置。 三、主要仪器设备 使用的计算机惠普:硬件配置 Win7 、软件环境 win-TC 四、操作方法与实验步骤 [习题源程序 ] #includestdio.h #define MAXSIZE 100 #define RIGHT 1 #define ERROR 0 typedef int ElemType; typedef struct { ElemType elem[MAXSIZE]; int last; }SeqList; void Initlist(SeqList *L) { L-last=-1; } void putseqList(SeqList *L,int n) { int i; for(i=0;in;i++) scanf(%d,(L-elem[i])); L-last=L-last+n; } int LenList(SeqList *L) { int Len; Len=L-last+1; return Len; } int PositionList(SeqList *L,int X) { int j; for(j=0;j=L-last;j++) if(XL-elem[j]) return j+1; return (L-last+1); } int InsList(SeqList *L,int i,int e) { int k; if((i1)||(iL-last+2)) { printf(the position is wrong); return(ERROR); } if(L-last=MAXSIZE-1) { printf(the list is full); return(ERROR); } for(k=L-last;k=i-1;k--) L-elem[k+1]=L-elem[k]; L-elem[i-1]=e; L-last++; return(RIGHT); } int OutputSeqList(SeqList *L) { int i; for(i=0;i=L-last;i++) printf(%d,,L-elem[i]); return(L-elem[i]); } void main() { int s,c; SeqList L; Initlist(L); printf(please input the length: ); scanf(%d,s); printf(please input the list: ); putseqList(L,s); LenList(L); printf(Please input an element to insert : ); scanf(%d,c); InsList(L,PositionList(L,c),c); OutputSeqList(L); printf(\n); getch(); } 五、实验数据记录和处理 六、实验结果与分析 此程序的优点是算法简单, 易于实现。 但是由于采用的是顺序存储的形式, 导致算法的时间性能和空间性能不是很好, 而且本程序的的健壮性不是很好, 对空间不够的情况没有很人性化的提出解决方案。 七、讨论、心得 改进思想: #define LIST_INIT_SIZE 100 typedef struct { int *elem; int length; int listsize; }sqlist; void creat_sqlist(sqlist *p){ int i,l; p-elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int)); if(!p-ele

文档评论(0)

182****2200 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档