帮忙做道C语言的题:双向链表的排序?C语言双向链表排序

2026-04-13 21:45:02 :0

帮忙做道C语言的题:双向链表的排序?C语言双向链表排序

今天给各位分享帮忙做道C语言的题:双向链表的排序的知识,其中也会对帮忙做道C语言的题:双向链表的排序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

帮忙做道C语言的题:双向链表的排序

#include 《stdio.h》
typedef struct Link/*双向链表结构体*/
{
int data;
struct Link *lift;
struct Link *right;
}linkx,*linky;
linky Init();/*建立双向链表*/
void PrLink(linky p);/*输出双向链表*/
linky Sort(linky head);/*对双向链表排序*/
linky Swap(linky head,linky one,linky two);/*任意交换双向链表两个结点的地址*/
void main(void)
{
linky head;
head=Init();
head=Sort(head);
PrLink(head);
}
linky Init()/*建立链表*/
{
linky p,q,head;
int n=0;
head=p=q=(linky)malloc(sizeof(linkx));
clrscr();
printf("please input 10 num: ");
scanf("%d",&p-》data);/*输入数据*/
head-》lift=NULL;
n++;
while(n!=10)/*一直输入到规定的数字个数停止*/
{
q=p;
p=(linky)malloc(sizeof(linkx));
scanf("%d",&p-》data);/*输入数据*/
q-》right=p;
p-》lift=q;
n++;
}
p-》right=NULL;
return(head);
}
linky Swap(linky head,linky one,linky two)/*任意交换两个结点*/
{linky temp;
if(one-》lift==NULL&&two-》right==NULL)/*首和尾巴的交换*/
{
if(one-》right==two)/*只有两个结点的情况下*/
{
two-》right=one;
two-》lift=NULL;
one-》lift=two;
one-》right=NULL;
head=two;
}
else/*有间隔的首尾交换*/
{
one-》right-》lift=two;
two-》lift-》right=one;
two-》right=one-》right;
one-》lift=two-》lift;
two-》lift=one-》right=NULL;
head=two;/*尾结点成为头结点*/
}
}
else if(two-》right==NULL)/*尾和任意一个交换*/
{
if(one-》right==two)/*交换最后两个结点*/
{
one-》lift-》right=two;
two-》lift=one-》lift;
two-》right=one;
one-》lift=two;
one-》right=NULL;
}
else/*和前面其他结点交换*/
{
temp=two-》lift;
temp-》right=one;
one-》lift-》right=two;
one-》right-》lift=two;
two-》lift=one-》lift;
two-》right=one-》right;
one-》lift=temp;
one-》right=NULL;
}
}
else if(one-》lift==NULL)/*头和任意一个交换*/
{
if(one-》right==two)/*交换头两个结点*/
{
two-》right-》lift=one;
one-》right=two-》right;
one-》lift=two;
two-》right=one;
two-》lift=NULL;
head=two;
}
else/*头结点和后面其他结点交换*/
{
temp=one-》right;
temp-》lift=two;
one-》lift=two-》lift;
one-》right=two-》right;
two-》lift-》right=one;
two-》right-》lift=one;
two-》right=temp;
two-》lift=NULL;
head=two;/*交换的结点成为头结点*/
}
}
else/*当中的任意两个交换*/
{
if(one-》right==two)/*交换连在一起的两个结点*/
{
temp=one-》lift;
one-》lift-》right=two;
one-》right-》lift=two;
one-》lift=two;
one-》right=two-》right;
two-》right-》lift=one;
two-》right=one;
two-》lift=temp;
}
else/*交换隔开的两个结点*/
{
one-》lift-》right=two;
one-》right-》lift=two;
one-》lift=two-》lift;
temp=one-》right;
one-》right=two-》right;
two-》lift-》right=one;
two-》right-》lift=one;
two-》right=temp;
two-》lift=one-》lift;
}
}
return(head);
}
linky Sort(linky head)/*对链表排序*/
{
linky i,j,t,p;
int max;
p=head;
for(i=p;i-》right!=NULL;i=i-》right)/*用选择法的思想对这些结点排序*/
{
max=i-》data;
for(j=i-》right;j!=NULL;j=j-》right)
if(j-》data《max)
{
max=j-》data;
t=j;
}
if(max!=i-》data)/*如果没有找到比i小的结点*/
{
head=Swap(head,i,t);/*因为最终返回的是头结点,而头结点又有可能变化,所以每次头结点返回*/
i=t;
}
}
return(head);
}
void PrLink(linky p)/*输出链表*/
{
linky q;
printf("Now the link: ");
do
{
q=p;
printf("%d ",p-》data);
p=p-》right;
free(q);/*释放输出结点*/
}
while(p!=NULL);
getch();
}

C语言双向链表排序

删除节点就是把某个节点从链表中取出,释放掉内存,把它前后节点再相连;
序号就是节点的位置,比如头结点就是1,头结点的下一个节点就是2以此类推;
数值就是随便一个数,比如每个节点都有一个int类型的变量,按这个变量的值从小到大或从大到小排序;

关于双链表排序和帮忙做道C语言的题:双向链表的排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

帮忙做道C语言的题:双向链表的排序?C语言双向链表排序

本文编辑:admin

更多文章:


饿了吗猜价格(饿了么如何定价,做活动)

饿了吗猜价格(饿了么如何定价,做活动)

大家好,如果您还对饿了吗猜价格不太了解,没有关系,今天就由本站为大家分享饿了吗猜价格的知识,包括饿了么如何定价,做活动的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录饿了么如何定价,做活动饿了吗买家怎么筛选起送费饿

2025年8月6日 09:00

网页代码编辑(如何查看网页源代码,修改源代码)

网页代码编辑(如何查看网页源代码,修改源代码)

大家好,网页代码编辑相信很多的网友都不是很明白,包括如何查看网页源代码,修改源代码也是一样,不过没有关系,接下来就来为大家分享关于网页代码编辑和如何查看网页源代码,修改源代码的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧

2025年6月9日 14:00

建站快车代理(佛山中深货运代理有限公司招省省快车怎么样)

建站快车代理(佛山中深货运代理有限公司招省省快车怎么样)

大家好,建站快车代理相信很多的网友都不是很明白,包括佛山中深货运代理有限公司招省省快车怎么样也是一样,不过没有关系,接下来就来为大家分享关于建站快车代理和佛山中深货运代理有限公司招省省快车怎么样的一些知识点,大家可以关注收藏,免得下次来找不

2026年3月22日 19:45

java编程规范考试(计算机JAVA编程语言有哪些考证什么时间、地点考有用没)

java编程规范考试(计算机JAVA编程语言有哪些考证什么时间、地点考有用没)

大家好,java编程规范考试相信很多的网友都不是很明白,包括计算机JAVA编程语言有哪些考证什么时间、地点考有用没也是一样,不过没有关系,接下来就来为大家分享关于java编程规范考试和计算机JAVA编程语言有哪些考证什么时间、地点考有用没的

2026年7月29日 07:15

c语言程序设计第三部答案(《C语言程序设计教程》第三版(谭浩强\张基温)编著,高等教育出版社出版,课后习题答案!)

c语言程序设计第三部答案(《C语言程序设计教程》第三版(谭浩强\张基温)编著,高等教育出版社出版,课后习题答案!)

其实c语言程序设计第三部答案的问题并不复杂,但是又很多的朋友都不太了解《C语言程序设计教程》第三版(谭浩强\张基温)编著,高等教育出版社出版,课后习题答案!,因此呢,今天小编就来为大家分享c语言程序设计第三部答案的一些知识,希望可以帮助到大

2025年10月3日 00:45

衡水网站制作公司(衡水名扬网络科技有限公司怎么样)

衡水网站制作公司(衡水名扬网络科技有限公司怎么样)

大家好,关于衡水网站制作公司很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于衡水名扬网络科技有限公司怎么样的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目

2025年10月31日 10:30

自动建站系统源码(急求企业网站源代码或模板!带有后来的最好!)

自动建站系统源码(急求企业网站源代码或模板!带有后来的最好!)

今天给各位分享急求企业网站源代码或模板!带有后来的最好!的知识,其中也会对急求企业网站源代码或模板!带有后来的最好!进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录急求企业网站源代码或模板!带有后来的最好!怎么

2025年11月8日 05:15

stack overflow怎么用啊(StackOverflow是用什么技术实现的)

stack overflow怎么用啊(StackOverflow是用什么技术实现的)

“stack overflow怎么用啊”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看stack overflow怎么用啊(StackOverflow是用什么技术实现的)!本文目录StackOverflow是用什么技术实现的

2026年1月17日 15:15

文山电力股价(这几只股票怎么样法拉电子,三一重工,上海莱士,青岛金王,华西村,新民科技,东华科技文山电力)

文山电力股价(这几只股票怎么样法拉电子,三一重工,上海莱士,青岛金王,华西村,新民科技,东华科技文山电力)

大家好,关于文山电力股价很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于这几只股票怎么样法拉电子,三一重工,上海莱士,青岛金王,华西村,新民科技,东华科技文山电力的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解

2025年7月30日 01:15

go代理服务器(请教一个golang如何通过代理服务器验证问题)

go代理服务器(请教一个golang如何通过代理服务器验证问题)

这篇文章给大家聊聊关于go代理服务器,以及请教一个golang如何通过代理服务器验证问题对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录请教一个golang如何通过代理服务器验证问题无法登陆与go服务器通信时出现问题解决go

2026年1月18日 18:15

时间代码视听语言(求时间日期html代码,带农历!(高手进))

时间代码视听语言(求时间日期html代码,带农历!(高手进))

其实时间代码视听语言的问题并不复杂,但是又很多的朋友都不太了解求时间日期html代码,带农历!(高手进),因此呢,今天小编就来为大家分享时间代码视听语言的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录求时间日期h

2026年6月28日 15:30

chrown命令(命令 chown userA:userA -R /home/userA 修改了哪个配置文件)

chrown命令(命令 chown userA:userA -R /home/userA 修改了哪个配置文件)

大家好,今天小编来为大家解答以下的问题,关于chrown命令,命令 chown userA:userA -R /home/userA 修改了哪个配置文件这个很多人还不知道,现在让我们一起来看看吧!本文目录命令 chown userA:use

2025年10月13日 23:30

md5解密需要去掉(为什么很多人都要求解密MD5值解密了有什么作用吗)

md5解密需要去掉(为什么很多人都要求解密MD5值解密了有什么作用吗)

本篇文章给大家谈谈md5解密需要去掉,以及为什么很多人都要求解密MD5值解密了有什么作用吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录为什么很多人都要求解密MD5值解密了有什么作用吗怎么破解电脑密码但不删除密码为什么很多人

2026年8月1日 14:00

onesize是什么尺码(Buff头巾onesize和均码的区别)

onesize是什么尺码(Buff头巾onesize和均码的区别)

大家好,onesize是什么尺码相信很多的网友都不是很明白,包括Buff头巾onesize和均码的区别也是一样,不过没有关系,接下来就来为大家分享关于onesize是什么尺码和Buff头巾onesize和均码的区别的一些知识点,大家可以关注

2026年8月21日 12:30

execl vba(vba制作excel菜单)

execl vba(vba制作excel菜单)

大家好,关于execl vba很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于vba制作excel菜单的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录v

2026年4月29日 10:00

finder图标是哪个(mac有没有类似于“我的电脑”的地方 桌面东西太多了不知道放哪)

finder图标是哪个(mac有没有类似于“我的电脑”的地方 桌面东西太多了不知道放哪)

其实finder图标是哪个的问题并不复杂,但是又很多的朋友都不太了解mac有没有类似于“我的电脑”的地方 桌面东西太多了不知道放哪,因此呢,今天小编就来为大家分享finder图标是哪个的一些知识,希望可以帮助到大家,下面我们一起来看看这个问

2026年6月1日 22:45

构造函数调用set函数(ES6中如何使用Set和WeakSet_javascript技巧)

构造函数调用set函数(ES6中如何使用Set和WeakSet_javascript技巧)

本篇文章给大家谈谈构造函数调用set函数,以及ES6中如何使用Set和WeakSet_javascript技巧对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录ES6中如何使用Set和WeakSet_javascript技巧Ja

2025年10月15日 08:15

加ous变成形容词(名词加ous变形容词的单词)

加ous变成形容词(名词加ous变形容词的单词)

其实加ous变成形容词的问题并不复杂,但是又很多的朋友都不太了解名词加ous变形容词的单词,因此呢,今天小编就来为大家分享加ous变成形容词的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录名词加ous变形容词的单

2026年1月5日 11:45

int啥意思(int是什么意思)

int啥意思(int是什么意思)

大家好,关于int啥意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于int是什么意思的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录int是什么意思

2025年10月3日 10:15

linux中makefile作用(请大神详解释一下linux中这个makefile是什么意思)

linux中makefile作用(请大神详解释一下linux中这个makefile是什么意思)

大家好,linux中makefile作用相信很多的网友都不是很明白,包括请大神详解释一下linux中这个makefile是什么意思也是一样,不过没有关系,接下来就来为大家分享关于linux中makefile作用和请大神详解释一下linux中

2026年7月31日 06:15

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索