LinkList* LinkListInsertSort(LinkList* pHead)

{

LinkList *pFirst = (LinkList *)NULL; /* 原链表剩下未排序节点的头指针 */

LinkList *pCurrInsert = (LinkList *)NULL; /* 无序链表中当前待插入节点 */

LinkList *pPrev = (LinkList *)NULL; /* 有序链表中插入位置的前一个节点 */

LinkList *pPost = (LinkList *)NULL; /* 有序链表中插入位置的有一个节点 */

pFirst = pHead->m_next; /* 原链表未排序链表的头节点 */

pHead->m_next = NULL; /* 仅含有一个节点的有序链表 */

while (NULL != pFirst)/* 遍历剩下无序的链表 */

{

pCurrInsert = pFirst;

pPost = pHead;

while ((NULL != pPost) && (pPost->m_key < pCurrInsert->m_key))

{

pPrev = pPost;

pPost = pPost->m_next;

}

pFirst = pFirst->m_next;

if (pPost == pHead) /* 节点pCurr要插在第一个节点之前 */

{

pHead = pCurrInsert;

}

else /* pPrev是pPost的前驱 */

{

pPrev->m_next = pCurrInsert;

}

pCurrInsert->m_next = pPost; /* 插入节点pCurrInsert */

}

return pHead;

}

c语言链表不带头节点的排序,不带头结点的单向链表排序——插入排序(C语言)...相关推荐

  1. 数据结构例9.编写一个算法,将带头结点的单向链表 拆分成一个奇数链表和一个偶数链表,并分别输出

    /* 编写一个算法,将带头结点的单向链表 拆分成一个奇数链表和一个偶数链表,并分别输出 */ # include <iostream> # include <stdlib.h> ...

  2. 数据结构--链表--判断一个字符串是否为回文串(单向链表,双向链表)

    回文串为首尾对称的字符串: 如a,aba,abba等 单链表思路 1.将字符读入链表 2.找到链表中点 3.将链表从中点断开成2条,将后半条反转 4.比较两条链表是否相等(比较次数以少的为准(长度为奇 ...

  3. java 链表逆序代码_如何实现一个高效的单向链表逆序输出?(详解)

    需要考虑因素,高效应权衡多方面因素 数据量是否会很大 空间是否有限制 原始链表的结构是否可以更改 时间复杂度是否有限制 一个链表节点需要输出的元素有多个,例如链表中存的是自定义对象,有多个字段 题目. ...

  4. 统计带头结点的单向链表的个数并存放在形参n所指的单元中。 欢迎评论 指点。

    #include <stdio.h> #include <stdlib.h> #define N 8 typedef struct list //定义结构体 { int dat ...

  5. php单链表检测有没有环,写一段代码判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即P点...

    首先,关于单链表中的环,一般涉及到以下问题: 1.给一个单链表,判断其中是否有环的存在: 2.如果存在环,找出环的入口点: 3.如果存在环,求出环上节点的个数: 4.如果存在环,求出链表的长度: 5. ...

  6. 数据结构-带头节点的单链表(C语言)超详细讲解

    前面我们学到线性表的顺序存储结构(顺序表),发现它有着明显的缺点:插入和删除元素时需要频繁的移动元素,运算效率低.必须按事先估计的最大元素个数申请连续的存储空间.存储空间估计大了,造成浪费空间:估计小 ...

  7. 不带头节点的单链表如何头插(多图易懂)

    文章目录 缘起 带头节点的头插 不带头节点的头插 错误的代码 为什么错误 如何修改 返回新的头指针 二级指针 缘起 本文想说的是单向非循环链表的头插.单向非循环链表,可以是带头节点的,也可以是不带头节 ...

  8. 【C语言】数据结构C语言版 实验3 带头结点的单链表

    slnklist.h #include <stdio.h> #include <stdlib.h> /************************************* ...

  9. 带头与不带头节点单链表

    一.链表与顺序表区别 二.链表的结构 1.带头节点 2.不带头节点 三.实现一个带头节点的链表 方法: 1.增加(头插.尾插) 2.删除某个节点 3.输出链表 4.得到链表指定位置节点 5.逆置链表 ...

最新文章

  1. youtube获取播放列表信息
  2. mysql5720_Mysql内置功能《五》 函数
  3. QT的QDataStream类的使用
  4. LeetCode 92. Reverse Linked List II
  5. PTA-6-1 数组循环右移 (20分)(C语言)
  6. Bailian3729 用set实现字符串的排序和查找【文本处理】
  7. 【干货】--手把手教你完成文本情感分类
  8. java 数字任意三个数_求Java编程个猜数字游戏!任意输入个数根据提示大了或小了直到选对...
  9. PHP - Smarty模板引擎 - Download下载 - 2 6 22
  10. 数据分析之数据预处理、分析建模、可视化
  11. ERP学习 之 财务管理
  12. go-sqlite3 “database is locked”问题解决方案
  13. 如何在Excel里输入能打钩的选择框?
  14. Time, Delays, and Deferred Work LDD3 学习笔记 + jiffies.h 分析
  15. 什么是零知识证明(ZK Proof)?Web2.0通往Web3.0的入口技术
  16. 目标检测+图像分割项目
  17. 无Internet,安全的解决方法
  18. uniapp实现附有二维码的图片的本地保存
  19. 解决 操作必须使用一个可更新的查询的错误
  20. 害阿里程序员差点被当场开除的P0事故

热门文章

  1. 从网络访问计算机不能添加用户名,windows7 和 XP 能互相用\\ip访问,但是不能通过计算机名访问...
  2. 目标检测第6步:YOLOv5(5.0)如何在Colab中训练自定义数据集?(更新时间:2022.3.22)
  3. 2014 网选 5024 Wang Xifeng's Little Plot
  4. ccs变量观察窗口在哪_CCS3.3查看变量图形
  5. 现代php中文版,现代PHP
  6. linux访问网站出现443,Linux访问网站一直出现超时
  7. python3导入_Python3导入相对还是绝对的正确方法?
  8. spring boot admin 2.2 获取日志失败_SB实战20-Spring Boot的日志和报告
  9. android 左滑按钮,android开发类似微信列表向左滑动按钮操作
  10. 日常问题——使用Xshell 连接虚拟机报错 Disconnected from remote host