很多朋友觉得插入很复杂,其实用画图的方法就很容易让人理解其中的意思,那么图怎么画呢?到底是先进行哪一步操作呢,接下来我将会一一讲解。
1.首先申请一个内存空间,并且强制转换类型
2.把L->data置为NULL;
3.把x赋值给x->data,把p-next赋给s->next,接下来把s赋值给p(顺序不能乱),a和b之间的“线”就会断开,插入成功
3.读取数据,进行插入数据。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode {
ElemType data;
struct LNode* next;
}LNode, * LinkList;
//头插法新建链表
LinkList CreatList1(LinkList& L)//list_head_insert
{
LNode* s; int x;
L = (LinkList)malloc(sizeof(LNode));//带头结点的链表
L->next = NULL;//
scanf("%d", &x);//从标准输入读取数据
//3 4 5 6 7 10
while (x != 10) {
s = (LNode*)malloc(sizeof(LNode));//申请一个空间空间
s->data = x;
s->next = L->next;
L->next = s;
scanf("%d", &x);//读取标准输入
}
return L;
}
//打印链表中每个结点的值
void PrintList(LinkList L)
{
L = L->next;
while (L != NULL)
{
printf("%3d", L->data);
L = L->next;
}
printf("\n");
}
int main()
{
LinkList L;
CreatList1(L);
PrintList(L);
}
控制台显示:
总结一下,对于链表问题大家可以多画图,画图可以更好的理解,在此为大家推荐一下网站可以更好地练习链表的相关知识。力扣