单链表的排序
来源:互联网 发布:mysql order by count 编辑:程序博客网 时间:2024/06/05 09:09
各种对单链表排序的方法:
/***对给定单链表进行排序,函数参数为指向链表第一个节点的指针*/#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0 typedef struct NODE{ struct NODE *next; int value;}Node;/***选择排序法,每次从当前遍历中找到最小值*/int listSort1(Node **first){ Node *current,*p,*q; int temp; for(current = *first;current != NULL;current = current->next) { q = current; for(p = current->next;p != NULL;p = p->next) { if(p->value < q->value) { q = p; //q为当前遍历中,value值最小的指针 } } if(q->value != current->value) { temp = current->value; current->value = q->value; q->value = temp; } } return TRUE; }/***冒泡排序法,每次得到链表中的一个最大值*/int listSort2(Node **first){ Node *current,*p,*q; int i,j = 0,temp,nodeCount = 0,order = 1 ; for(current = *first;current != NULL;current = current->next) nodeCount++;for(i = 0;i < nodeCount-1;i++) { p = *first; for(j = i;j < nodeCount-1;j++) { q = p->next; if(p->value > q->value) { temp = p->value; p->value = q->value; q->value = temp; order = 0; }p = q; } if(order) break;} return TRUE; }/***测试用,在主函数里建一个无序链表,然后对其排序*/int main(void){ Node *head,*newNode,*temp; int newValue,count = 5; //测试用的整数个数 head = NULL;printf("请输入%d个整数:\n",count); scanf("%d",&newValue);head = (Node*)malloc(sizeof(Node)); head->value = newValue; head->next = NULL;temp = head;while(--count) { scanf("%d",&newValue); newNode = (Node*)malloc(sizeof(Node)); newNode->value = newValue; newNode->next = NULL; temp->next = newNode;temp = newNode;newNode = NULL; } temp->next=NULL; listSort2(&head); printf("排序后的链表为:\n");while(head) { printf("%d ",head->value); head = head->next; } printf("\n"); return TRUE; }
- 单链表的排序(选择排序)
- 单链表的排序(归并排序)
- 单链表的快速排序和归并排序
- 用归并排序实现单链表的排序
- 单链表的正向排序,反向排序
- 单链表的归并排序和插入排序
- 对单链表的排序(选择排序)
- 单链表的排序 快速排序 归并排序 quicksort mergesort
- 单链表的排序
- 单链表的冒泡排序
- 单链表的排序
- 单链表的快速排序
- 单链表的插入排序
- 单链表的快速排序
- 单链表的快速排序
- 单链表的快速排序
- 单链表的排序
- 建立排序的单链表
- 单链表的逆置
- “红色病毒”问题--递推
- HDU 4545 魔法串
- memache 客户端
- QT210开发板android应用程序控制led灯[android应用程序控制硬件]
- 单链表的排序
- xmu 1246.素数筛选
- ibatis常见问题
- 创建表空间,用户授权
- 查找单链表的中间节点
- 参考说明
- 《一个操作系统的实现》(五):1.ELF
- SQL Server和MySql语法和关键字的区别
- 分页类