-
题目描述:
-
建立一个升序链表并遍历输出。
-
输入:
-
输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。
-
输出:
-
可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。
-
样例输入:
-
4 3 5 7 9
-
样例输出:
-
3 5 7 9
-
来源:
#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
typedef struct Node
{
int data;
struct Node *link;
}Node;
int main()
{
int n;int a[10000];
while(scanf("%d",&n)!=EOF)
{
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
sort(a+1,a+1+n);
Node *first=(Node*)malloc(sizeof(Node));
first->link=NULL;
Node *newnode=NULL,*last=first;int val;
for(int i=1;i<=n;i++)
{
val=a[i];
newnode=(Node*)malloc(sizeof(Node));
newnode->data=val;
last->link=newnode;
last=newnode;
}
last->link=NULL;
Node *p=first->link;
int cnt=0;
while(p)
{
cnt++;
if(cnt==1)
{
printf("%d",p->data);}
else {printf(" %d",p->data);}
p=p->link;
}
printf("\n");
}
}