数据结构实验之链表六:有序链表的建立
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。
输入
第一行输入整数个数N;
第二行输入N个无序的整数。
第二行输入N个无序的整数。
输出
依次输出有序链表的结点值。
示例输入
6 33 6 22 9 44 5
示例输出
5 6 9 22 33 44
提示
不得使用数组!
来源
示例程序
#include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *next; }*A,M; A head,tail; int main() { int n; A p,q; head=(A)malloc(sizeof(M)); head->next=NULL; scanf("%d",&n); while(n--) { p=head->next; q=head; tail=(A)malloc(sizeof(M)); scanf("%d",&tail->data); while(p!=NULL) { if(tail->data < p->data) { tail->next=p; q->next=tail; break; } q=p; p=p->next; } if(p==NULL) { tail->next=NULL; q->next=tail; } } p=head->next; while(p!=NULL) { printf("%d",p->data); if(p->next!=NULL) printf(" "); p=p->next; } printf("\n"); return 0; }