-
题目描述:
-
建立一个升序链表并遍历输出。
-
输入:
-
输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。
-
输出:
-
可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。
-
样例输入:
-
4 3 5 7 9
-
样例输出:
-
3 5 7 9
-
来源:
-
2000年华中科技大学计算机研究生机试真题
#include<stdio.h> #include<stdlib.h> typedef struct Lnode { int data; struct Lnode *next; }Lnode,*Link; int main() { int n,i; while(scanf("%d",&n)!=EOF) { Link la,pa,p; la=(Link)malloc(sizeof(Lnode)); la->next=NULL; for(i=0;i<n;i++) { p=(Link)malloc(sizeof(Lnode)); scanf("%d",& p->data); pa=la; while(pa->next && pa->next->data < p->data) pa=pa->next; p->next = pa->next; pa->next = p; } pa=la->next; free(la); while(pa->next) { printf("%d ",pa->data); p=pa; pa=pa->next; free(p); } printf("%d\n",pa->data); free(pa); } return 0; }