中易网

c语言单链表,有几句程序不明白意思,能否教一下! 程序功能:带头结点的单链表中寻找最小值结点.

答案:2  悬赏:60  
解决时间 2021-02-21 23:14
创建单链表过程和输出单链表过程省略.
HeadLink *delinsert(HeadLink *h){ /*h为一个已经创建好的单链表指针首地址
HeadLink *p,*pre,*q;
p=h->next; /*p指向头结点下一结点
pre=h; /*pre指向头结点
q=p; /*q指向p结点
while(p->next){ /*遍历的整个单链表
if(p->next->infoinfo){ /*如果p下一个结点的数据小于当前所指向的p结点
pre=p; /*这段程序是什么意思?
q=p->next; /*q指向了比较结束数据小的那个结点
}
p=p->next; /*p指向了下一结点
}
if(q!=h->next){ /*如果最小值是第一个元素结点,则不需要在操作
pre->next=q->next; /*这句程序什么意思?
q->next=h->next; /*最小结点插入到最前面
h->next=q; /*头结点指向最小结点
}
return h;
}
因为本人是自学的c语言所以如果上面某些段落如果翻译的不对也请告诉一下,十分感谢
最佳答案
pre实际上是用来保存那个最小节点q的前一个节点,当上面那个while语句做完了后q必定为最小节点,pre恰为q的前驱,pre->next=q->next这句实际上就是在改变q的前驱节点的指向,让q的前驱
pre指向它的下一个节点(因为要将最小节点q放到表头去,为保持链表的完整性,所以先将它的前驱pre移向最小节点q的下一节点)。
全部回答
这个算法我已经画了个图确定了是对的,倒置2个节点,循环要执行2次,以此类推时间复杂度是o(n),你不理解也可以画个图,一步一步推,这里很难讲明白,至于其他人的答案,我不敢恭维
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
桌面快捷方式图标变黑
现在安装防火门在杭州地区多少钱一平方。
越位问题,2017年3月8日凌晨的欧冠1/8决赛第
一模考考了539分.在宝山区排名第几名?
Which is not the Chinese Zodiac?是什么意思
“以子之矛攻子之盾”属于哪种论证方法
大家好,我马上初中毕业了,男,想读中专技校
晨欣动物诊所地址有知道的么?有点事想过去
天我喜欢一个男主播天天都想看到他这是不是病
牙龈发炎影响公务员体检吗
彩虹六号心跳怎么显示不了敌人了?
贝贝乐艺术幼儿园在什么地方啊,我要过去处理
福州家禧购物在哪里
什么,联结着什么,也联结着什么
江豆和什么做稀粥好?
推荐资讯
金坛市华美制衣厂我想知道这个在什么地方
安徽蓝翔节能玻璃股份有限公司怎么去啊,有知
uc浏览器为什么这么垃圾?
哈根达斯的蓝莓芝士蛋糕怎么做
34岁,还想顺产,年纪是不是太大了
玉兰花室内软装生活馆我想知道这个在什么地方
请问营业场所门口放音乐扰民怎么办?
荞荞地址在什么地方,想过去办事
床上用品包不包含在日用百货里面?
塑料衣架执行什么标准
看图写话勇敢的消防员
国家散打队是怎么安排训练课程的,我看付高峰
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?