数据结构试验五.doc

数据结构试验五.doc

ID:53716036

大小:136.00 KB

页数:2页

时间:2020-04-06

数据结构试验五.doc_第1页
数据结构试验五.doc_第2页
资源描述:

《数据结构试验五.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、附:源代码#include#includetypedefstructnode{intdata;structnode*next;}LinkList;//创建一个链表,含有头结点LinkList*create(LinkList*head){LinkList*p,*q;intkey;q=head;printf("请输入节点元素:");scanf("%d",&key);while(key>0){p=(LinkList*)malloc(sizeof(LinkList))

2、;p->data=key;q->next=p;q=p;scanf("%d",&key);}q->next=NULL;returnhead;}//逆置整个链表voidchange(LinkList*head){LinkList*first;//始终指向首节点LinkList*prerear;//指向初始链表的尾节点//使prerear指向初始链表的尾节点if(first==NULL)//当节点为空时,跳出函数return;for(prerear=head;prerear->next;prerear=

3、prerear->next);first=head->next;//使用头插法把链表逆置,采用先设置尾节点的方法//若只有一个节点则直接返回if(first==prerear)return;else//否则将初始链表的首节点变成尾结点{head->next=first->next;//把首节点拿出来prerear->next=first;//将首节点接在尾节点后first->next=NULL;//将当前尾节点的next域置为NULL}first=head->next;//将first始终指向首节

4、点//下面利用头插法原理将首节点一次取出头插在初始尾结点之后//直到初始尾结点变成首节点为止for(;first!=prerear;){//把首节点拿出来head->next=first->next;//将拿出来的节点指向初始尾节点后一个节点first->next=prerear->next;//将拿出来的节点放在初始尾节点后prerear->next=first;//将first指向当前首节点first=head->next;}}//输出链表元素voidprint(LinkList*head){

5、printf("逆置后的链表为:");for(LinkList*p=head->next;p!=NULL;p=p->next)printf("%d",p->data);printf("");}intmain(){LinkListL,*head;head=&L;create(head);change(head);print(head);return0;}五、调试分析这个程序在设计的时候,就犯了一个逻辑的错误,当时的思路是这样的:将首节点依次插在尾结点上。当时的代码是:算法设计思路错误for(fi

6、rst=head->next;first!=prerear;first=first->next){head->next=first->next;//把首节点拿出来rear->next=first;//将首节点接在尾节点后rear=first;//将rear指向新的尾节点first=head->next;//将first指向新的首节点}rear->next=NULL;直到测试的时候才发现无法进行逆置,发过头来分析代码,当时也没发现逻辑有问题,而且这个问题困惑了我很久,怎么都搞不懂为什么?!直到后来,

7、我分析我同学的程序时,才恍然大悟,将首节点依次插在尾结点上,这样一个循环之后不是有回到原来的那个次序了吗??!!于是,我把思路由原来的模拟尾插法该成了模拟头插法,即将首节点始终差在初始尾结点之后。六、使用说明程序名为逆序.exe,运行环境为DOS。程序执行后显示这时,在这里必须输入输入整数,且必须大于0的,如果输入0,则说明要结束输入。按回车程序将会逆序输出刚才输的数据。说明:在录入数据时,最后一个0是不被程序读入的。七、测试结果1、测试结果符合要求2、测试结果符合要求3、说明:当输入浮点数时,程

8、序无法处理,甚至会造成死机。4、说明:此次测试说明输入0是程序已经不再执行从输入流读入数据了。5、说明:当输入为空时,要能够正确的处理。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。