ImageVerifierCode 换一换
格式:DOCX , 页数:59 ,大小:193.74KB ,
资源ID:19364703      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19364703.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验Word下载.docx

1、 float maxx; maxx=cour0.course_score; for(j=1; if(maxxcourj.course_score) maxx=courj.course_score;the maximum istmaxx min=courj.course_score;the minimize istmincourj.course_num;courj.course_name;courj.course_score;void output(course*cour,int i)courj.course_numtcourj.course_namettcourj.course_score#d

2、efine LIST_INIT_LIST 100#define LISTINCREMENT 10#define null 0 int *elem; int length; int listsize;Sqlist;int initSqlist(Sqlist &L) L.elem=(int *)malloc(LIST_INIT_LIST*sizeof(int); if(!L.elem) return null; L.length=0; L.listsize=LIST_INIT_LIST; return 1;int inserSqlist(Sqlist &L,int i,int e) int j,*

3、newbase; if(iL.length+1) if(L.length=L.listsize) newbase=(int *)realloc(L.elem,(LIST_INIT_LIST+LISTINCREMENT)*sizeof(int);newbase) return null; L.elem=newbase; L.listsize+=LISTINCREMENT; for(j=L.length-1;j=i-1;j-) L.elemj+1=L.elemj; L.elemi-1=e; L.length+;int deletSqlist(Sqlist &L,int i,int &e) if(L

4、.length=0) e=L.elemi-1; for(j=i;=L.length-1; L.elemj-1=L.elemj; -L.length;void traverSqlist(Sqlist & int i; for(i=0;ii+) coutL.elemi Sqlist L; int i,j,n,k,e,g; initSqlist(L);please input how number you want:n;please input number: for(i=1;=n;e; inserSqlist(L,i,e); traverSqlist(L);please input which n

5、umber you want to delete:k; deletSqlist(L,k,g);4.运行结果见下图2.1. 图2.1 顺序表运行结果三、 实验心得本次试验,算是刚刚开始正面接触数据结构,感觉现在定义的结构体都好难,基本上都跟指针挂钩,有点不适应。刚开始都是照着书本打,可是这又有新问题了,主函数不会写,不知道从哪入手。看了看书,开始下手,各种错误,比如指针类型不能跟int数值类型相互赋值,还有一些丢了双引号等等,后来逐一排查错误后,又在主函数赋值i和调用函数的相应值之间出错,还有在traverSqlist函数中,把i=L.length-1写成inext=null; return H

6、;int inserLnode(Lnode *L,int i,int e) Lnode *p,*q; p=(Lnode *)malloc(sizeof(Lnode); p-data=e; q=L;i-1; q=q-next; if(ji&q-next!=null)next=q- q-next=p;int deletLnode(Lnode *L,int i,int & e=q-data; p=q-next=p-int travellLnode(Lnode *L) Lnode *q; while(q-data inserLnode(L,i,data);the num is: travellLnod

7、e(L);void hebingLnode(Lnode *La,Lnode *Lb) Lnode *Lc,*pa,*pb,*pc; pa=La- pb=Lb- Lc=pc=La; while(pa&pb) if(pa-=pb-data) pc-next=pa; pc=pa; pa=pa- else pc-next=pb; pc=pb; pb=pb-pa) pc-pb) pc- free(Lb); travellLnode(Lc); Lnode *L1; Lnode *L2; L1=initlist(); createLnode(L1); L2=initlist(); createLnode(L

8、2); hebingLnode(L1,L2); 4.实验结果如下图3.1。 图3.1实验结果 本次试验,依旧实在插入函数inserLnode的循环语句for(j=0;j+)的就ji-1输成了j pc=pa; pa=pa-没有弄的太明白,老是忘记这是个链表结构,还有头结点,而且没弄懂把Lc的指针直接指向La,老是感觉会破坏La的后面的数据,后来才明白,这是个链表结构,不是顺序表,这样做只是利用La的头结点,就不用再去创建一个头结点了。所以在后面也就不用free(La)了,最后一个错误就是在合并函数中将if(!,语句写成了if(!next=pa,这就是pa指针没了,还把pa指针赋值给pc,也就是空

9、值,以至于在输出时只输出La的值,后来也是看书找到了答案。实验四、栈的基本操作 1.掌握栈的抽象数据类型。 2.掌握实现栈的各种操作。 3.理解栈与递归的关系。 1.用C描述栈的美中操作在顺序栈上得实现。 2.将建栈、初始化栈、判断是否非栈、用堆栈设计一个八进制转换程序。#define STACK_INIT_SIZE 100#define STACKINCREAEMNT 10 int *base; int *top; int stacksize;Sqstack;struct initSqstack(Sqstack & L.base=(int *)malloc(STACK_INIT_SIZE*s

10、izeof(int); if(!L.base) return 0; L.top=L.base; L.stacksize=STACK_INIT_SIZE;int push(Sqstack &L,int e) if(L.top-L.base=L.stacksize) L.base=(int *)realloc(L.base,(STACK_INIT_SIZE+STACKINCREAEMNT)*sizeof(int); if(! return 0; L.top=L.base+L.stacksize; L.stacksize+=STACKINCREAEMNT; *L.top+=e;void pop(Sq

11、stack &L,int & if(L.base=L.top)this stack is empty! e=*-L.top;int main() int n,m; Sqstack L; initSqstack(L);input num you want to: while(n) push(L,n%8); n=n/8;它的八进制表示为: while(L.top!=L.base) pop(L,m);mint inserLinkQnode(LinkQnode &Q,int e) Qnode *p; p=(Qnode *)malloc(sizeof(Qnode);p) Q.rear- Q.rear=p

12、;int deletLinkQnode(LinkQnode &Q,int & if(Q.front=Q.rear) p=Q.front- e=p- return e;void travellLinkQnode(LinkQnode & Qnode *q; q=Q.front- do q=q- while(q!=Q.rear-next); int i,n,m,k,data; LinkQnode S; initLinkQnode(S);please input numninput what you wantn inserLinkQnode(S,data); travellLinkQnode(S);d

13、elete a numn deletLinkQnode(S,m); deletLinkQnode(S,k);4.实验结果如下图5.1。 图5.1 实验结果 这个实验真的很难做感觉,首先是不理解单链表到底是什么意思,就开始敲程序,结果错的乱七八糟,错误最多的还是在travellLink函数如何将这个链表的数据输出出来,刚开始我定义了一个指针p,就是在q=Q.front-next还是q=Q.front,错了好多次,就是因为不知道什么事头结点,还有就是把Q.front当成是这个链表的头结点,结果错了,才知道Q.front和Q.rear只是一个指向头结点的指针,而头结点另有所在。而后又在travell

14、Link函数的while(q!next)上绊了一大脚,依旧是不知道是应该是while(q-next),后来经过反反复复尝试加上看书本理解队列的头结点问题,在解开。最后,又在删除元素上出错了,原因是忘记了列队的只能从Q.front的那一边删除元素,后来终于全部运行出来。实验六、无头结点的循环链表 1.理解头结点的含义。 2.掌握循环链表的各种操作算法。 3.掌握无头节点循环链式存储结构的及基本操作,深入了解无头节点循环链式表的基本特征。以便在实际中灵活的运用它们。 1. 用C表述每种操作在链队列上的实现。 2. 将建立一个无头节点循环链式表,完成在这个链式表上每第三个数删掉数据,结果输出来。void inserQnode(Qnode *L,int i,int e) Qnode *p,*q;i-2;void deletQnode(Qnode *L) int e; p=L; p=p- q=p-e free(q);n

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1