赞
踩
代码:
- //带头结点单链表的排序操作
- #include <stdio.h>
- #include <stdlib.h>
- #include "demo2015-2.h"
-
- void SortList(LinkedList Head) {
- Node *p = Head->link;//将首元节点看做一个有序链表
- Node *pre,*s;
- s = p->link;
- p->link = NULL;
- p = s;//p指向第一个待处理的节点
- while (p) {//没有待处理的节点则退出循环
- s = p->link;//记录下一个待排序的结点
- pre = Head;//pre重新指向头结点
- if (pre->link->data < p->data) {
- pre = pre->link;
- }
- p->link = pre->link;
- pre->link = p;
- p = s;//p指向下一个待处理的节点
- }
- }
-
- int main() {
- LinkedList Head = (Node*)malloc(sizeof(Node));//创建头结点
- Head->link = NULL;
-
- Create(Head,5);
- PrintList(Head);
- printf("***********排序后***********");
- SortList(Head);
- PrintList(Head);
-
- return 0;
- }
运行:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。