题目1181:遍历链表

来源:互联网 发布:威少身体数据 编辑:程序博客网 时间:2024/05/10 12:24
题目1181:遍历链表

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:1591

解决:671

题目描述:

建立一个升序链表并遍历输出。

输入:

输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。

输出:

可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。

样例输入:
43 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;
}


原创粉丝点击