-
题目描述:
-
建立一个升序链表并遍历输出。
-
输入:
-
输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。
-
输出:
-
可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。
-
样例输入:
-
4 3 5 7 9
-
样例输出:
-
3 5 7 9
#include<malloc.h>
using namespace std;
struct List{
int data;
List *next;
};
int main()
{
List *p=NULL,*q=NULL,*header=NULL;
int x,n,i,temp;
while(cin>>n){
header=(List*)malloc(sizeof(List));
header->next=NULL;
q=header;
for(i=0;i<n;i++){
p=(List*)malloc(sizeof(List));
cin>>x;
p->data=x;
p->next=NULL;
q->next=p;
q=q->next;
}
p=header->next;
while(p->next!=NULL){
q=header->next;
while(q->next!=NULL){
if(q->data>q->next->data){
temp=q->data;
q->data=q->next->data;
q->next->data=temp;
}
q=q->next;
}
p=p->next;
}
for(p=header->next;p!=NULL;p=p->next){
if(p->next!=NULL)
cout<<p->data<<" ";
else
cout<<p->data<<endl;
}
}
return 0;
}