题目1181:遍历链表
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:1591
解决:671
-
题目描述:
-
建立一个升序链表并遍历输出。
-
输入:
-
输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。
-
输出:
-
可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。
-
样例输入:
-
4 3 5 7 9
-
样例输出:
-
3 5 7 9
-
来源:
- 2000年华中科技大学计算机研究生机试真题
-
-
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node *next;
}linklist;
int main()
{
int i,j,n,t,v;
linklist *L,*p,*r,*q;
while(scanf("%d",&n)!=EOF)
{
L=(linklist*)malloc(sizeof(linklist));
if(!L) exit(0);
L->next=NULL;
r=L;
for(i=0;i<n;i++)
{
scanf("%d",&v);
p=(linklist*)malloc(sizeof(linklist));
p->data=v;
r->next=p;
r=p;
}
r->next=NULL;
p=L->next;
while(p)
{
q=p->next ;
while(q)
{
if(p->data>q->data)
{
t=p->data;
p->data=q->data;
q->data=t;
}
q=q->next;
}
p=p->next;
}
p=L->next;
for(i=0;i<n;i++)
{
if(i==0) printf("%d",p->data );
else printf(" %d",p->data);
p=p->next;
}
free(p);
free(L);
printf("\n");
}
return 0;
}
-
-