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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

软基上机的报告链表拓展题.docx

1、软基上机的报告链表拓展题1、程序流程说明2、1)创建一个单链表,其数据元素为整数,从键盘输入,输入0结束(注意0不放到链表内);3、 2)从键盘任意输入一个整数,在单链表中查询该数,如果单链表中已经存在这个数,就调用删除函数,删除该元素所在结点,并将单链表在删除前后的数据元素依次输出到屏幕上;4、 如果单链表中不存在这个数,就调用插入函数,将这个数插入到单链表尾,并将单链表在插入前后的数据元素依次输出到屏幕上。 5、3)教材第一章习题第9题(用链表实现)ex2_3扩展题6、1)删除单链表中全部的负数7、2)创建一个双向链表,按照冒泡排序的思路对这个双向链表进行排序,打印排序结果。注意,本算法在

2、交换元素时是将链点整个交换而不是将链点中的元素值交换。8、 9、10、11、2_21)创建一个单链表,其数据元素为整数,从键盘输入,输入0结束(注意0不放到链表内);(if x!=0,scanf) 2)从键盘任意输入一个整数,在单链表中查询该数,如果单链表中已经存在这个数,就调用删除函数,删除该元素所在结点,并将单链表在删除前后的数据元素依次输出到屏幕上;(search 返回重复的位置,然后删除(同实验一) 如果单链表中不存在这个数,就调用插入函数,将这个数插入到单链表尾,并将单链表在插入前后的数据元素依次输出到屏幕上。(同实验一,直接加在链表末尾)3)判断插入元素与表内元素的大小,如temp

3、-dataxlink-data,则插入temp后2_31)删除单链表中全部的负数(逐个判断是不是负数,并且返回负数所在位置,删除过春哥同实验一)2)创建一个双向链表,按照冒泡排序的思路对这个双向链表进行排序,打印排序结果。注意,本算法在交换元素时是将链点整个交换而不是将链点中的元素值交换。(从一开始逐个比较,将比第一位大的与第一位交换位置,一直比较到最后一位然后开始对于第二位重复比较)二、程序代码 2_2#include#include#includetypedef struct Node int data; struct Node *link;node;typedef struct List

4、 node *head; node *tail; int length;list;void creat_list(list *table) int x,i; node *temp; table-head=NULL; table-tail=NULL; table-length=0; x=1;scanf(%d,&x); for(i=0;x!=0;i+) fflush(stdin); printf(n); temp=(node*)malloc(sizeof(node); temp-data=x; temp-link=NULL; temp-link=table-head; table-head=tem

5、p; table-length+;scanf(%d,&x); node * create_node(int new_node) node * temp; temp = (node*)malloc(sizeof(node); temp-data = new_node; temp-link = NULL; return temp;void get(list *table,int n) int i,loc=table-length+1; node *temp; node *newnode; temp=table-head; table-length+; newnode=create_node(n);

6、 for(i=2;ilink; newnode-link = temp-link; temp-link = newnode; void show_list(list *table) int x,i; node *temp; printf(链表为:n); temp=table-head; for(i=1;i length;i+) x=temp-data; printf(%d ,x); temp=temp-link; void delete_node(list *table,int n) int i; node *temp,*t; temp=table-head; if(n=1) temp=tem

7、p-link; table-head=temp; if(n2&nlength) temp=table-head; for(i=2;ilink; t=temp-link; temp-link=t-link; if(n=table-length) for(i=2;ilink; temp-link=NULL; if(n=2) temp=table-head; t=temp-link; temp-link=t-link; table-length-;void search(list *table,int x,int a2) int i=0,j=0; node *temp; temp=table-hea

8、d; for(i=1;ilength;i+) if(x=temp-data) a1=i; j+; temp=temp-link; if(j=0) a0=0; a1=0; else a0=1; void main() list table; int m,a2; creat_list(&table); show_list(&table); printf(n输入一个整数n); scanf(%d,&m); search(&table,m,a); if(a0=1) delete_node(&table,a1); show_list(&table); elseget(&table,m);show_list

9、(&table); 2_2(3)#include#include#includetypedef struct Node int data; struct Node *link;node;typedef struct List node *head; node *tail; int length;list;void creat_list(list *table) int x,i; node *temp; table-head=NULL; table-tail=NULL; table-length=0; x=1;scanf(%d,&x); for(i=0;x!=0;i+) fflush(stdin

10、); printf(n); temp=(node*)malloc(sizeof(node); temp-data=x; temp-link=NULL; temp-link=table-head; table-head=temp; table-length+;scanf(%d,&x); node * create_node(int new_node) node * temp; temp = (node*)malloc(sizeof(node); temp-data = new_node; temp-link = NULL; return temp;void get(list *table,int

11、 n) int i,m=0; node *temp; node *newnode; temp=table-head; table-length+; newnode=create_node(n); if(ndata) newnode-link=temp; temp=newnode; else for(i=1;m=0;i+) if(ilength&temp-datan&nlink-data) newnode-link = temp-link; temp-link = newnode; m=1; else if(i=table-length) temp-link=newnode; newnode-l

12、ink=NULL; m=1; temp=temp-link; table-length+; void show_list(list *table) int x,i; node *temp; printf(链表为:n); temp=table-head; for(i=1;i length;i+) x=temp-data; printf(%d ,x); temp=temp-link; void main() list table; int m,a2; creat_list(&table); show_list(&table); printf(n输入一个整数n); scanf(%d,&m);get(

13、&table,m);show_list(&table);2_3(1)#include#include#includetypedef struct Node int data; struct Node *link;node;typedef struct List node *head; node *tail; int length;list;void creat_list(list *table) int x,i; node *temp; table-head=NULL; table-tail=NULL; table-length=0; x=1; scanf(%d,&x); for(i=0;x!

14、=0;i+) fflush(stdin); printf(n); temp=(node*)malloc(sizeof(node); temp-data=x; temp-link=NULL; temp-link=table-head; table-head=temp; table-length+; scanf(%d,&x); node * create_node(int new_node) node * temp; temp = (node*)malloc(sizeof(node); temp-data = new_node; temp-link = NULL; return temp;void

15、 get(list *table,int n) int i,loc=table-length+1; node *temp; node *newnode; temp=table-head; table-length+; newnode=create_node(n); for(i=2;ilink; newnode-link = temp-link; temp-link = newnode; void show_list(list *table) int x,i; node *temp; printf(n链表为:n); temp=table-head; for(i=1;i length;i+) x=

16、temp-data; printf(%d ,x); temp=temp-link; void delete_node(list *table,int n) int i; node *temp,*t; temp=table-head; if(n=1) temp=temp-link; table-head=temp; if(n2&nlength) temp=table-head; for(i=2;ilink; t=temp-link; temp-link=t-link; if(n=table-length) for(i=2;ilink; temp-link=NULL; if(n=2) temp=t

17、able-head; t=temp-link; temp-link=t-link; table-length-;void search(list *table,int a2) int i=0,j=0; node *temp; temp=table-head; for(i=1;ilength;i+) if(temp-datalink; if(j=0) a0=0; a1=0; else a0=1;void paixu(list *table)int i,j,m,u; node *temp,*t,*p; for(i=1;ilength;i+) temp=table-head; for(u=1;uli

18、nk; t=temp; for(j=i;jlength;j+) temp=t; for(m=i;mlink; if(t-datadata) p=temp-link; temp-link=t-link; t-link=p; void main() list table; int m,a2; creat_list(&table); show_list(&table); search(&table,a);for(m=1;a0=1;m+)search(&table,a); if(a0=1) delete_node(&table,a1); show_list(&table);2_3(2)#include

19、#include#includetypedef struct Node int data; struct Node *link,*last;node;typedef struct List node *head; node *tail; int length;list;void creat_list(list *table) int x,i; node *temp,*t,*p; table-head=NULL; table-tail=NULL; table-length=0; x=1;scanf(%d,&x); for(i=0;x!=0;i+) fflush(stdin); printf(n)

20、; temp=(node*)malloc(sizeof(node); temp-data=x; temp-link=NULL; temp-link=table-head; table-head=temp; table-length+;scanf(%d,&x); t=(node*)malloc(sizeof(node); t=table-head; t-last=NULL; for(i=2;ilength;i+) p=t; t=t-link; t-last=p; void show_list(list *table) int x,i; node *temp; printf(链表为:n); tem

21、p=table-head; for(i=1;i length;i+) x=temp-data; printf(%d ,x); temp=temp-link; void paixu(list *table) int i,j,m; node *temp,*t,*p,*q; temp=table-head; t=temp; for(i=2;ilength;i+) t=t-link; if(t-datatemp-data) p=t-link; t-link=temp-link; temp-link=p; t-last-link=temp; table-head=t; t-last=NULL; temp

22、-last=t-last; p=t; t=temp; temp=t;/*/ temp=table-head; for(i=2;ilength;i+) temp=temp-link; t=temp; for(j=i+1;jlength;j+) t=t-link; if(t-datatemp-data) p=t-link; t-link=temp-link; temp-link=p; t-last-link=temp; temp-last-link=t; p=t-last; t-last=temp-last; temp-last=p; p=t; t=temp; temp=t; void main(

23、) list table; creat_list(&table); show_list(&table); paixu(&table); show_list(&table); 三、测试数据* 输入:2_2132-45-29-70输入一个整数3输入一个整数102_2(3)7543210链表为:1 2 3 4 5 7输入一个整数62_3(1)1-23-4-79502_3(2)1-23-4-7950 应输出(上机前自己分析的结果):2_2链表为:7 9 -2 5 -4 2 3 1链表为:-7 9 -2 5 -4 2 1 链表为:-7 9 -2 5 -4 2 1 102_2(3)链表为:1 2 3 4

24、5 6 72_3(1)链表为:5 9 -7 -4 3 -2 1链表为:5 9 3 12_3(2)链表为:5 9 -7 -4 3 -2 1链表为:9 5 3 1 -2 -4 -7四、上机时遇到的问题(可分为编译问题和逻辑问题)* 问题现象:冒泡排序时出现错误 原因:循环次数出现问题,少套一个循环; 解决办法:加一个循环 问题现象: 删除负数时删错元素 原因:对于提供的删除元素位置处理不得当; 解决办法:通过调试中找到正确处理方法五、实际运行结果: 2_2链表为:7 9 -2 5 -4 2 3 1链表为:-7 9 -2 5 -4 2 1 链表为:-7 9 -2 5 -4 2 1 102_2(3)链表为:1 2 3 4 5 6 72_3(1)链表为:5 9 -7 -4 3 -2 1链表为:5 9 3 12_3(2)链表为:5 9 -7 -4 3 -2 1链表为:9 5 3 1 -2 -4 -7 六 、小结 体会*:整体做起来比较困难,需要加强对于链表的练习。同时,思考对于2_2,若原链表中有多个需要处理的元素如何一并处理。

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

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