【考研数据结构——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。

相关推荐
我不会编程5559 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
似水এ᭄往昔10 小时前
【C语言】文件操作
c语言·开发语言
owde10 小时前
顺序容器 -list双向链表
数据结构·c++·链表·list
第404块砖头10 小时前
分享宝藏之List转Markdown
数据结构·list
蒙奇D索大11 小时前
【数据结构】第六章启航:图论入门——从零掌握有向图、无向图与简单图
c语言·数据结构·考研·改行学it
A旧城以西11 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
烂蜻蜓12 小时前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法
守正出琦12 小时前
日期类的实现
数据结构·c++·算法
ゞ 正在缓冲99%…13 小时前
leetcode75.颜色分类
java·数据结构·算法·排序
橘猫云计算机设计13 小时前
基于springboot的考研成绩查询系统(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·考研·django·毕业设计