54 链表排序
来源:互联网 发布:ubuntu安装步骤失败 编辑:程序博客网 时间:2024/05/20 10:56
对于输入的 n 个数据 num 进行排序,要求将输入的数据按 num 升序建立带有表头结点的链表,且链表中不能有重复的数据。
现在已经给出结点定义和程序框架,包括 main 函数和链表输出函数 outlist,请编写函数 sortlist 完成链表排序功能。
函数原型 sortlist( PNODE h, int num ) 的参数含义如下:
h :单链表的头指针
num :新输入的需要插入链表中的数据
直接贴出所有代码吧,貌似54 55两题差不多,前两天写的记不清了。开了个博客还要3天后才能发表文章........
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include "stdio.h"struct node{int data;struct node * next;} ;typedef struct node NODE;typedef struct node * PNODE;outlist( PNODE head ){PNODE p;p = head->next;while ( p != NULL ){printf("%d\n", p->data);p = p->next;}}/*有序的插入 数据不重复 重复数据不加入*/void sortlist( PNODE h, int num ) { PNODE t1;PNODE t2,t3;t1 = t2 = h;while((t2=t1->next)!=NULL){if(t2->data == num) break;else if(t2->data > num){t3 = (PNODE)malloc(sizeof(NODE));t3->data = num;t1->next = t3;t3->next = t2;}else{t1=t1->next;} }if(t2==NULL){t3 = (PNODE)malloc(sizeof(NODE));t3->data = num;t3->next = NULL;t1->next = t3;}}int main ( ){ int num=1;PNODE head;head = (PNODE)malloc( sizeof(NODE) );head->next = NULL;head->data = -1;while ( num!=0 ){ scanf("%d", &num);if ( num!=0 )sortlist( head, num);}outlist( head );return 0;}
- 54 链表排序
- 链表排序 归并排序
- 链表排序--选择排序
- 链表排序--快速排序
- 链表排序--归并排序
- 排序3:插入排序(普通插入排序 + 折半插入排序 + 链表插入排序 + 希尔排序)
- LIST排序, Struct排序, qsort排序, STL::LIST sort排序, 链表排序
- 单向链表排序:快速排序和归并排序
- 单向链表排序-归并排序
- 链表排序,使用插入排序,
- 链表排序-直接插入排序
- 链表的一种排序---冒泡排序
- c 链表排序 - 选择排序
- 链表排序之插入排序
- 插入排序进行链表排序
- 优化冒泡排序 & 链表选择排序
- 链表排序之选择排序
- 链表排序之冒泡排序
- 函数指针的理解
- OO与设计模式的原则、目标
- 使用 Visual Round Trip Analyzer 加快网页加载速度的 12 个步骤
- 图形验证码的java通用类
- display 中的 overlay 的文章搜集
- 54 链表排序
- 天气预报接口(中国天气网) .
- 四面体中的二面角(未完)
- Revit中如何编程实现窗口缩放视图
- ARM启动文件2440init的分析
- 遍历map
- LRU的改进算法LIRS
- web.xml 详细介绍
- DB_link