《数据结构》实验报告

上传人:jun****875 文档编号:17746266 上传时间:2020-12-04 格式:DOC 页数:6 大小:98.91KB
收藏 版权申诉 举报 下载
《数据结构》实验报告_第1页
第1页 / 共6页
《数据结构》实验报告_第2页
第2页 / 共6页
《数据结构》实验报告_第3页
第3页 / 共6页
资源描述:

《《数据结构》实验报告》由会员分享,可在线阅读,更多相关《《数据结构》实验报告(6页珍藏版)》请在装配图网上搜索。

1、xxx 实验报告课程名称数据结构实验名称实验一 线性表操作 系部班级姓名学号实验时间 2012 年10 月15 日21 时30 分 时 分地点机位评语指导教师:成绩一、实验目的1.熟悉上机环境,进一步掌握语言的结构特点。2.掌握线性表的顺序存储结构的定义及实现。3.掌握线性表的链式存储结构单链表的定义及实现。4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。5.掌握线性表在链式存储结构单链表中的各种基本操作。二、实验内容 1.顺序线性表的建立、插入及删除。 2.链式线性表的建立、插入及删除。三、实验步骤1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。2.利用前面的实验先

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 /结构定义头文件s

3、qlist.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;

4、 /指针引用,如果去掉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个元素,在插入过程中注意溢出情况以及数组的下标与位序本程

5、序实现的是在第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 initl

6、ist(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 E

7、RROR; 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); sc

8、anf(%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

9、#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,

10、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

11、-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)

12、 程序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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!