首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

链表排序的算法

发布网友

我来回答

2个回答

热心网友

我看过了程序,觉得思想应该是这样的,9次遍历该链表。每次找出一个MAX,并将他赋给一个新的结点,同时删除原链表中这个最大值。
最后将这些新的接点组成一个链表,就是排好序的。
现在来看看程序中的错误,主要是在排序中:
⒈while条件错误,假如是temp!=NULL,想一想遍历到链表最一个值,这时temp不为NULL,而temp->next为NULL,while循环中用到了这个,所以程序崩溃。修改方法:该while条件,或是改循环中的temp->next。
⒉swaptemp->next=swaptemp->next->next;错误,会使程序崩溃,理由同上,应该是swaptemp->data=max;swaptemp=swaptemp->next;
⒊对max的处理应该放在while循环外面,这样才能对最大的max处理。
程序看上去比较得乱,也就没有调试,说了这么多你应该能自己调试成功吧。再说一下,尽量不要让程序有警告,有时警告也会让你的程序无法正常运行!

热心网友

结构体一般不放在int main()里 要放在#include<iostram.h>的下面 这样下面的程序就都能用上了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com