-
题目描述:
-
建立一个升序链表并遍历输出。
-
输入:
-
输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。
-
输出:
-
可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。
-
样例输入:
-
4 3 5 7 9
-
样例输出:
-
3 5 7 9
-
来源:
#include<stdio.h>
#include<malloc.h>
struct list{
int data;
struct list *next;
};
int main(){
int n,e,i;
list *head,*tail,*p,*q;
while(~scanf("%d",&n)){
head=(list*)malloc(sizeof(list));
head->next=NULL;
tail=head;
for(i=0;i<n;i++){
scanf("%d",&e);
p=(list*)malloc(sizeof(list));
p->data=e;
tail->next=p;
tail=p;
}
tail->next=NULL;
p=head->next;
while(p!=NULL){
q=p->next;
while(q!=NULL){
if(p->data>q->data){
int temp=p->data;
p->data=q->data;
q->data=temp;
}
q=q->next;
}
p=p->next;
}
p=head->next;
while(p!=NULL){
if(p->next==NULL){
printf("%d\n",p->data);
break;
}
else{
printf("%d ",p->data);
p=p->next;
}
}
free(p);
free(head);
}
return 0;
}