单链表插入排序
来源:互联网 发布:mac翻墙教程 编辑:程序博客网 时间:2024/05/22 12:37
代码自己实现过一遍就是有更加深入的理解:
node* insert_sort(){ int data = 0; int i = 0; node *head, *Cur, *Pre, *New; head = (node*)malloc(sizeof(node)); while(1) { printf("Please input the data: "); scanf("%d", &data); if(data == 0) break; New = (struct node*)malloc(sizeof(struct node)); Pre = (struct node*)malloc(sizeof(struct node)); Cur = (struct node*)malloc(sizeof(struct node)); New->data = data; // 新分配一个node节点 New->next = NULL; if(++i == 1) { head->next = New; continue; } if(head->next->data >= New->data) { New->next = head->next; head->next = New; continue; } Cur = head->next; while(New->data > Cur->data && Cur->next != NULL) { Pre = Cur; Cur = Cur->next; } if(Cur->data >= New->data) { Pre->next = New; New->next = Cur; } else { Cur->next = New; } } return head;}
上文中head节点初始化,其他节点的初始化是很重要的问题。
未初始化很容易出现debug版本没问题,而release版本不通过的现象。
同时注意到head节点是空节点,并不是头结点,所以要小心处理有关head节点的情况
阅读全文
0 0
- 排序之单链表插入排序
- 单链表插入排序
- 单链表实现插入排序
- 插入排序(单链表)
- 单链表插入排序
- 单链表插入排序
- 实现单链表插入排序
- 单链表的插入排序
- 单链表直接插入排序
- 单链表插入排序算法
- [leetcode]单链表插入排序
- 单链表的插入排序
- 单链表实现插入排序
- 单链表---直接插入排序
- 单链表插入排序
- 单链表实现插入排序
- 单链表插入删除排序
- 单链表的插入排序
- 堆中的路径
- Postgresql数据库导入和导出CSV格式
- android-problem——remount of /system failed: Read-only file system
- JDK源码分析之ArrayList(一)
- vs2010打不开vs2013的.sln文件,选择的文件是解决方案文件 但是用此应用程序的较新版本创建的,无法打开
- 单链表插入排序
- Maven+jetty启动 debug source not found
- c++ 命名空间
- 康神建议之重学《c++ primer》(2)(文件操作)
- IE8兼容性- 条件注释
- mysql存储过程while循环按时间分组查询每天总数前10
- 15 个 Android 通用流行框架大全(这篇文章好像我自己总结过的一样,发现了,于是转载了)
- Faster-RCNN Tensorflow版本源码解析(二)train_net.py所用到的函数
- 【Angular】路由跳转问题;