




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
xxx 实验报告课程名称数据结构实验名称实验一 线性表操作 系部班级姓名学号实验时间 2012 年10 月15 日21 时30 分 时 分地点机位评语指导教师:成绩一、实验目的1.熟悉上机环境,进一步掌握语言的结构特点。2.掌握线性表的顺序存储结构的定义及实现。3.掌握线性表的链式存储结构单链表的定义及实现。4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。5.掌握线性表在链式存储结构单链表中的各种基本操作。二、实验内容 1.顺序线性表的建立、插入及删除。 2.链式线性表的建立、插入及删除。三、实验步骤1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。2.利用前面的实验先建立一个顺序表L=21,23,14,5,56,17,31,然后在第i个位置插入元素68。3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。四、程序主要语句及作用1) 程序1的主要代码(附简要注释) #includeusing namespace std;#define MAXSIZE 1024/#define OVERFLOW 0/#define NULL 0#define OK 1#define MAXSIZE 1024typedef int elemtype; /* 线性表中存放整型元素 */typedef struct /结构定义头文件sqlist.h elemtype vecMAXSIZE; int len; /* 顺序表的长度 */ sqlist;int initlist(sqlist *L,int k) int i; printf(Input the list:); for( i=0;iveci);/cinL-veci;同效,注意输入时地址& return OK;/ 以下是整个源程序:#includesqlist.hint main() int i,n; sqlist *L,a; /定义表的变量 printf(n Input the length of the list L:n); scanf(%d,&n); L=&a; /指针引用,如果去掉L=&a语句,会出现什么结果? L-len=n; /将长度传给len initlist(L,n); printf(Output the list and its length:n); for(i=0;iveci); printf(nThis sqlists length is %d, L-len); system(pause); return 0;2) 程序2的主要代码(附简要注释) /*顺序表的插入利用前面的实验先建立一个顺序表L=21,23,14,5,56,17,31然后在第i个位置插入元素68。注意如何取到第i个元素,在插入过程中注意溢出情况以及数组的下标与位序本程序实现的是在第i个元素之前插入新的元素(顺序表中元素的次序)的区别。*/#includeusing namespace std;/#includeinitlist.h#define MAXSIZE 1024/#define OVERFLOW 0#define ERROR 0#define OK 1#define MAXSIZE 1024typedef int elemtype; /* 线性表中存放整型元素 */typedef struct /结构定义头文件initlist.h elemtype vecMAXSIZE; int len; /* 顺序表的长度 */ sqlist;int initlist(sqlist *L,int k) int i; printf(Input the list:); for( i=0;iveci);/cinL-veci;同效,注意输入时地址& return OK;/*-*/int insert(sqlist *L,int i,int x)/插入运算,将值为x的元素插入到第i个元素之前 int j; if(*L).len=MAXSIZE) printf(the list is overflown); return ERROR; else if(i(*L).len+1) printf(position is not corrent.n); return ERROR; else for(j=(*L).len-1;j=i-1;j-) /L-len (*L).vecj+1=(*L).vecj; /元素后移 (*L).veci=x; /插入元素区别:i-1 (*L). len+; /表长度增加1 return OK; int main() int n,i,x; sqlist *L,a; printf(n Input the length of the list L:n); scanf(%d,&n); /输入表长度 L=&a; L-len=n; initlist(L,n); printf(ninput the insert location:n); scanf(%d,&i); printf(ninput the insert data:n); scanf(%d,&x); if(insert(L,i,x) printf(The length of the new list is:%dn ,L-len); printf(Output the new lists data:n); for(i=0;ilen;i+) printf(%dn, L-veci); else printf(cant insert the data!n); system(pause); return 0;3) 程序3的主要代码(附简要注释) #include #include #include typedef struct tagNODE int value; struct tagNODE *next;NODE, *LPNODE;void Input(LPNODE pHead) LPNODE pNext, pTmp; char ch; if(!pHead) return; pNext = pHead; while(pNext & pNext-next) pNext = pNext-next; while(1) printf(enter new value: ); pTmp = (LPNODE)malloc(sizeof(NODE); memset(pTmp, 0, sizeof(NODE); pNext-next = pTmp; scanf(%d, &(pTmp-value); fflush(stdin); printf(continue(y/n)?); ch = getchar(); if(ch != y & ch !=Y) break; pNext = pNext-next; void Output(LPNODE pHead) LPNODE pNext; int i = 1; if(!pHead) return; pNext = pHead-next; while(pNext) printf(%d node value: %dn, i+, pNext-value); pNext = pNext-next; void FreeNode(LPNODE pHead) LPNODE pTmp1, pTmp2; if(!pHead) return; if(pTmp2 = pHead-next) while(pTmp2) pTmp1 = pTmp2-next; free(pTmp2); pTmp2 = pTmp1; int main() NODE head = 0 ; Input(&head); Output(&head); FreeNode(&head); return 0;五、程序运行结果截图1) 程序12) 程序2 插入数据不在列表范围内:3) 程序3六、收获,体会及问题 本次试验让我认识到了自己的不足之处太多:1.大部分的时间都用在了编程上,主要是因为C语言掌握的问题,C语言基础不好特别是对于C语言中链表的一些定义和基本操作不够熟练,导致在编程过程中还要不断的拿着c语言的教材查找,所以今后还要对C语言多练习,多动手,多思考。 2.数据结构有很强的逻辑性,因此我认为如果在上机之前先把逻辑搞清楚很重要,不管是对算法的设计还是对程序的调试都有很大帮助。 3.经过一次上机实践,我认为实践课很重要,上理论课只是纸上谈兵,只是被动地接受,而实践课上能将学过的知识利用起来,同时还有一些东西只能是自己上机实践才能慢慢探索出的。所以我在做试验的时候特别费劲,特别吃力,这也是事出有因的。通过自我反省,总结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乳制品健康宣传活动创新创业项目商业计划书
- 电商平台用户画像深度挖掘创新创业项目商业计划书
- 老年婚恋交友平台创新创业项目商业计划书
- 线上购物线下试妆创新创业项目商业计划书
- 水利工程维修养护数字孪生管理创新创业项目商业计划书
- 电商供应链可视化管理系统创新创业项目商业计划书
- 汽车赛事直播服务创新创业项目商业计划书
- 辐射核安全知识培训内容课件
- 2025年数字货币对货币政策传导机制影响的金融科技视角研究
- 2025年文化与科技融合趋势下的数字文化内容创作创新模式研究报告
- 《油气管道无人机智能巡检系统技术管理规范》
- 2025年新版期权知识考试题库带答案
- GB 46030-2025建筑用安全玻璃安全技术要求
- 2025年新《中华人民共和国安全生产法》知识竞赛测试题库含答案
- 2025年度吉林辅警招聘考试题(含答案)
- 吉安市新庐陵投资发展有限公司及下属子公司2025年第二批面向社会公开招聘笔试备考题库及答案解析
- 《机械制图(多学时)》中职全套教学课件
- 企业标准体系课件
- 《特种设备目录》(2022年第114号)
- 冲击式水轮机演示
- 人民音乐出版社四年级音乐上册教案
评论
0/150
提交评论