#include<stdio.h>
#include<stdlib.h>
typedef struct linklist
{
int i; //数据域
struct linklist* next; //指针域
}node; //创建的结点为单指针域
void main()
{
node* head = (node*)malloc(sizeof(node)); //创建头指针
head->next = NULL; //头指针置为空
node* p; //创建结构体指针 p 用p指针对链表进行操作
p = head; //把head指针赋给指针p
int n;
printf("请输入链表的长度->\n");
scanf("%d", &n);
printf("请输入元素->\n");
for (int a = 0; a < n; a++)
{
node* s = (node*)malloc(sizeof(node)); //开辟空间,返回类型是Node结构体指针类型(创建新结点)
scanf("%d", &s->i); // s 为结构体指针类型 s->i为把数据存放在数据域
p->next = s; // p指针为头指针 把s的地址赋给p的指针域
s->next = NULL; // 把s的指针域置为空
p = s; //把s整体赋给p,此时s指针为空,方便下一轮的赋值,for循环会再开辟空间给s
}
p = head; //从头指针开始遍历链表
while (p->next != NULL)
{
printf("%d\t", p->next->i);
p = p->next;
}
}
创建链表基础的学习