40 lines
1023 B
C++
40 lines
1023 B
C++
#include<bits/stdc++.h>
|
||
|
||
//链表结构体,一个真实的数字,一个是指针,指向下一个node的地址
|
||
struct node {
|
||
int data;
|
||
struct node *next;
|
||
};
|
||
|
||
int main() {
|
||
struct node *head ,*p,*q,*t;//第一个指针
|
||
int i, n, a; //变量声明
|
||
scanf("%d",&n); //创建一个多大的链表
|
||
head = NULL; //头指针初始为空
|
||
//循环读入n个数
|
||
for(i = 1; i <= n; i++) {
|
||
scanf("%d",&a); //读入一个整数,放到a变量中
|
||
//动态申请一个空间,用来存放一个节点,并用临时指针p指向这个节点
|
||
p=(struct node *)malloc(sizeof(struct node));
|
||
p->data=a; //将数据存储到当前节点的data域中
|
||
p->next=NULL; //设置当前节点的后继指针指向空,也就是当前节点的下一个节点为空。因为是最后一个节点,所以next=NULL
|
||
|
||
//如果这是第一个创建的节点,则将上一个节点的后继指针指向当前节点
|
||
if(head==NULL)
|
||
head=p;
|
||
else
|
||
q->next=p; //如果不是第一个创建的节点,则将上一个节点的后继指针指向当前节点
|
||
//把本轮的变成上一个,方便下一轮循环
|
||
q=p;
|
||
}
|
||
|
||
//输出
|
||
t=head;
|
||
while(t!=NULL) {
|
||
printf("%d ",t->data);
|
||
t=t->next;
|
||
}
|
||
return 0;
|
||
}
|
||
|