【考研数据结构——C语言描述】第二章 线性表链式存储结构上的基本操作——单链表的初始化

25计算机考研,数据结构知识点整理(内容借鉴了王道408+数据结构教材),还会不断完善所整理的内容,后续的内容也会不断更新(可以关注),若有错误和不足欢迎各位朋友指出!

一.单链表的初始化

步骤:

(1)生成新结点作为头结点,用头指针L指向头结点

(2)将头结点的指针域置空,(空表)->即构造一个空表

带头结点和不带头结点的单链表的初始化操作是不同的。带头结点的单链表初始化时,需要创建一个头结点,并让头指针指向头结点,头结点的next域初始化为NULL。

cpp 复制代码
InitList(LinkList *L)
{ 
  *L=(LinkList)malloc(sizeof(Node));  //建立头结点
  (*L)->next=NULL; //建立空的单链表L即头结点后暂未有其他元素结点
}

不带头结点的单链表初始化时,只需将头指针初始化为NULL。

cpp 复制代码
InitList(LinkList *L)
{
  L=NULL;  //不带头结点的单链表的初始化
}

L是指向单链表的头结点的指针,用来接收主程序中待初始化单链表的头指针变量的地址。*L相当于主程序中待初始化单链表的头指针变量。

注意:
设p为指向链表结点的结构体指针,则*p表示结点本身,因此可用 p->data或(*p).data访问*p这个结点的数据域,二者完全等价。成员运算符(.)左边是一个普通的结构体变量,而指向运算符(->)左边是一个结构体指针。通过(*p).next 可以得到指向下一个结点的指针,因此(*(*p).next).data就是下一个结点中存放的数据,或者直接用 p->next->data。

相关推荐
wdfk_prog3 分钟前
RT-Thread Kconfig 配置明明是 y,为什么 rtconfig.h 就是不生成?一次 `_PATH` 后缀踩坑复盘
c语言
是隼人13 分钟前
buuctf-pwn jarvisoj_level5(64位ret2libc)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
晴天的雨.99239 分钟前
[C++算法]快乐数
数据结构·c++·算法
killerbasd43 分钟前
总结 9.08
考研
影视飓风TIM1 小时前
C++11 核心新特性完整梳理
数据结构·c++·算法
晴天的雨.9921 小时前
[C++]算法双指针 复写0
数据结构·c++·算法
mmmmath_31 小时前
LeetCode.438.找到字符串中所有字母异位词
数据结构·算法·leetcode
Suxing91 小时前
C语言基础分享:C语言文件操作:从“写日记”到“拍电影”的存盘指南
c语言·开发语言
Navigator_Z1 小时前
LeetCode //C - 1237. Find Positive Integer Solution for a Given Equation
c语言·算法·leetcode
码少女1 小时前
数据结构——堆排序
数据结构