读入n值及n个整数,建立单链表并遍历输出。
输入格式:
读入n及n个整数。
输出格式:
输出n个整数,以空格分隔(最后一个数的后面没有空格)。
输入样例:
在这里给出一组输入。例如:
2
10 5
输出样例:
在这里给出相应的输出。例如:
10 5
//单链表的创建和遍历
#include<stdlib.h>
#include<stdio.h>
typedef int ElemType;
//定义节点
typedef struct node{
int data;
struct node *next;
} LNode;
typedef struct node *Linklist;
//单链表初始化
Linklist ListInit(){
Linklist list;
list = (Linklist)malloc(sizeof(LNode));
list->data = 0;
list->next = NULL;
return list;
}
//添加链表元素
void InsertList(int n,Linklist list){
ElemType a[n];//要添加的元素数组
int i;
for(i = 0;i<n;i++){
scanf("%d",&a[i]);
}
//插入元素
Linklist p = list;
for(i=0;i<n;i++){
p->data = a[i];
p->next = (Linklist)malloc(sizeof(LNode));
if(i==n-1)
p->next = NULL;
else
p = p->next;
}
}
// 链表遍历
void ListTraver(Linklist list){
Linklist p = list;
while( p->next != NULL){
printf("%d ",p->data);
p=p->next;
}
printf("%d",p->data);
}
int main(){
int n;
scanf("%d",&n);
//n的合法性判断是必须的。
if(n <= 0){
return 0;
}
//初始化
Linklist list;
list = ListInit();
//插入和遍历
InsertList(n,list);
ListTraver(list);
return 0;
}