经典算法学习——单链表实现冒泡排序(带头结点)
来源:互联网 发布:echart json 地图 编辑:程序博客网 时间:2024/06/06 11:44
我在之前一篇博客中《经典算法学习——单链表(不带头结点)实现冒泡排序》实现了对不带头结点的单链表进行冒泡排序,打破了我们常常使用数组来进行冒泡的惯例。然后带头结点的链表更为常用。该篇博客我们就要实现对带头结点的单链表进行冒泡排序。需要注意是否带头结点对处理第一个节点非常重要。代码上传至:https://github.com/chenyufeng1991/BubbleSortLinkedList_HeadNode 。
核心代码如下:
Node *BubbleSort(Node *pNode){ int count = SizeList(pNode);//用来控制次数 Node *pMove; pMove = pNode->next; //遍历次数为count-1 while (count > 1) { while (pMove->next != NULL) { if (pMove->element > pMove->next->element) { int temp; temp = pMove->element; pMove->element = pMove->next->element; pMove->next->element = temp; } pMove = pMove->next; } count--; //重新移动到第一个节点 pMove = pNode->next; } printf("%s函数执行,带头结点的单链表冒泡排序成功\n",__FUNCTION__); PrintList(pNode); return pNode;}
1 0
- 经典算法学习——单链表(不带头结点)实现冒泡排序
- 经典算法学习——单链表实现冒泡排序(带头结点)
- 经典算法学习——非循环双向链表实现冒泡排序(带头结点尾结点)
- 经典算法学习——非循环双向链表实现冒泡排序(不带头结点)
- 经典算法与数据结构的c++实现——带头结点的单链表
- 带头结点的单链表冒泡排序
- 单链表插入排序(带头结点与不带头结点)
- 经典算法学习——冒泡排序
- 数据结构——单链表(带头结点和不带头结点)
- 线性表——带头结点单链表的实现
- 线性表——带头结点单链表的实现
- 经典排序算法——冒泡排序
- 经典排序算法——冒泡排序
- 经典排序算法——冒泡排序
- 经典排序算法—冒泡排序
- 带头结点的单链表( 冒泡排序 一次遍历求中间结点的值) 链表 就地反转 倒数第k个结点
- 经典算法——鸡尾酒排序(冒泡算法改良)
- 数据结构(四)——单链表 、带头结点的单链表、循环链表 及其实现
- HDU3068 最长回文
- 在Windows上安装Node.js模块的方法
- MagicRecord详解
- GUI界面设计1 三角函数
- mpstat
- 经典算法学习——单链表实现冒泡排序(带头结点)
- Android中使EditText失去焦点,edittext禁止弹出键盘
- unix线程栈
- 智慧石的链接
- 算法代码实现之堆排序,C/C++实现
- android用户界面开发
- LTP-kernel-connectors
- 素数求和问题
- Hadoop-2.4.1集群搭建步骤