如何对链式存储结构进行排序?

lickiswallow 2004-07-09 05:51:27
我们这学期学了数据结构,我们所学的排序只是针对顺序表(数组),
但是若对链表的排序却没有多想,那么在实际中我们会大量使用链表的,如何排序?
希望尽量简便,因为我可以把链表中的数据"提取"到顺序表中,然后再排序,但是这样做比较浪费空间,想有一个更好的方法.
此题作为交流,因此不设给分.
...全文
299 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mark0402 2004-07-12
  • 打赏
  • 举报
回复
对单向链表用直插,第一次取下头节点,以后依次取下节点然后对关键字比较判断插入位置,最后实现排序。这个应该可以实现的,在《数据结构(c版)》清华大学出版社第二、十章里面有类似的排序算法
lickiswallow 2004-07-09
  • 打赏
  • 举报
回复
其实想是这样想的,但随着实际编写会发现不断的需要新增加指针来使得地址不会丢失.
不过可以试一试其他方法,因为目前我只试过冒泡法.
scvjx 2004-07-09
  • 打赏
  • 举报
回复
我感觉链表也一样排序啊,不过用双向链表比较好。比如用快速排序,那么找个关键字,设个LOW HIGH指针,分别指向前后两个结点,道理不是一样?
如果是单向链表可能麻烦点吧。

有个方法,也许很苯,但是可行应该:
比如从小到大排。可以先比头2个结点。设3个指针。一个指向比较过的中最小的,一个指要比的结点,另外一个先指想最小的,它可以自由移动,移动中和该比较的结点进行比较。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧