数据结构实验之链表六:有序链表的建立
2015-11-13 17:25
375 查看
数据结构实验之链表六:有序链表的建立
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。输入
第一行输入整数个数N;第二行输入N个无序的整数。
输出
依次输出有序链表的结点值。示例输入
6 33 6 22 9 44 5
示例输出
5 6 9 22 33 44
提示
不得使用数组!来源
示例程序
#include<stdio.h> #include<stdlib.h> struct node { int data; struct node *next; }; struct node *creat(struct node *head,int n) { int i; struct node *p,*q; q=head; for(i=0;i<n;i++) { p=(struct node *)malloc(sizeof(struct node)); scanf("%d",&p->data); p->next=q->next; q->next=p; q=p; } return head; } int main() { int i,j,n,m,k,t; struct node *head,*p,*q,*tail; scanf("%d",&n); head=(struct node *)malloc(sizeof(struct node)); head->next=NULL; head=creat(head,n); q=head; for(i=0;i<n-1;i++) { q=q->next; p=q->next; for(j=i+1;j<n;j++) { if(q->data>p->data) { t=q->data; q->data=p->data; p->data=t; } p=p->next; } } p=head; p=p->next; i=0; while(p!=NULL) { if(i==0) printf("%d",p->data); else printf(" %d",p->data); p=p->next; i++; } }
相关文章推荐
- 数据结构实验之链表五:单链表的拆分
- 2015年大二上-数据结构-栈(3)- 括号的匹配
- 数据结构上机实验之顺序查找
- 数据结构上机实验之二分查找
- 数据结构、算法与应用 (C++描述) 第二版 1.14
- 数据结构、算法与应用 (C++描述) 第二版 1.13
- 数据结构、算法与应用 (C++描述) 第二版 1.12
- 数据结构之约瑟夫循环
- 数据结构、算法与应用 (C++描述) 第二版 1.11
- 数据结构之停车场
- 双向链表的算法设计和实现(数据结构)
- C++与Matlab混合编程之:矩阵数据结构
- C++与Matlab混合编程之:矩阵数据结构
- (C语言-数据结构)还原二叉树-改进
- 数据结构、算法与应用 (C++描述) 第二版 1.10
- 【算法设计与数据结构】URAL 1167. Bicolored Horses(动态规划求解)
- 数据结构、算法与应用 (C++描述) 第二版 1.9
- 数据结构、算法与应用 (C++描述) 第二版 1.8
- 数据结构、算法与应用(C++描述) 第二版 1.7
- 数据结构、算法与应用 (C++描述) 第二版 1.6