单链表的插入排序(详细图解说明)
来源:互联网 发布:mysql数据库设计教程 编辑:程序博客网 时间:2024/06/05 07:00
题目:实现一个单链表的插入排序
如图所示,解决这个问题的关键
(1)首先必须维护当前节点的前指针,
(2)然后还要维护要插入的位置的前后指针,
(3)每个要插入的节点都要从头开始比较。
算法如下:
void InsertSort(List l)p = l; //p,q用来维护插入位置的前后指针q = l.next;r = q; //r,s用来维护当前带插入的前后指针s = r.next;while(s){while( !q.equals(s)&& s.data > q.data) //如果q != s, p,q下移{p = p.next;q = q.next;}if(q.equals(s)) //当跳出的循环条件是q == s时,说明s比前面的都大,不用插入{p = l;q = l.next;r = r.next;s = s.next;}else //当跳出的条件是s.data > q.data时,{//这是交换节点r.next = s.next;s.next = q;p.next = s;//让s指向它原先的下一个,继续进行这个过程s = r.next;//让p,q回到起始位置,以便下一个插入时从头进行比较p = l;q = l.next;}}
- 单链表的插入排序(详细图解说明)
- 红黑树(RBTree)的插入算法以及如何测试一棵树是否是红黑树?(详细图解说明)
- 【冒泡排序】的详细说明
- 插入排序——深入浅出(图解)
- 图解:Java 插入排序
- 图解直接插入排序
- 图解插入排序
- 插入排序 (图解+代码)
- 图解插入排序--直接插入排序
- Android开发环境的搭建详细图解说明
- 图解详细完全卸载oracle9i的过程说明
- 希尔排序(shell排序)的详细解说,对插入排序算法的改进
- SharePoint 2013 Power Pivot 安装详细说明(图解)
- C语言 图解插入排序
- 直接插入排序算法图解
- 最大堆的插入/删除/调整/排序操作(图解+程序)(JAVA)
- 最大堆的插入/删除/调整/排序操作(图解+程序)(JAVA)
- 插入排序-----自理解(详细注释)
- 详细解析Java中抽象类和接口的区别
- ppt的打印
- Java 采用字节流操作图片
- Android编译系统中头文件搜索路径的顺序问题
- ajax介绍
- 单链表的插入排序(详细图解说明)
- 细说PHP电子书下载地址
- 核心动画----mac和iphone开发的简化的动画技术。
- sqlite 语法
- AJAX基础教程
- Android--使用TCP/IP协议实现断点上传
- HandleError过滤器
- 用WSH批量修改当前文件夹中所有ppt的链接
- Ajax: 一个建立Web应用的新途径