Description
输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。
Input
第一行输入整数的个数N;
第二行依次输入每个整数。
Output
输出这组整数。
Sample
Input
8
12 56 4 6 55 15 33 62
Output
12 56 4 6 55 15 33 62
Hint
不得使用数组!
#include<bits/stdc++.h>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}List;
List *creator(int n)
{
List *head, *tail, *p;
head = (List *)malloc(sizeof(List));//head = new List;
head->next = NULL;
tail = head;
for(int i = 0; i < n; i++)
{
p = (List *)malloc(sizeof(List));
scanf("%d",&p->data);
p->next = NULL;
tail->next = p;
tail = p;
}
return head;
}
void display(List *head)
{
List *p;
p = head->next;//让p指向开始结点
while(p)
{
printf("%d%c", p->data, p->next ? ' ':'\n');//这里采用了三目运算 ? :
p = p->next;
}
}
// 三目运算相当于是if else 的一个简化版
// ? 前面的语句是判断语句 若为真则执行 : 前面的语句,若为假则执行:后面的语句
int main()
{
int n;
List *head;
scanf("%d", &n);
head = creator(n);
display(head);
return 0;
}