2023王道考研数据结构第二章---单链表

本文详细介绍了单链表的概念,包括它的定义、节点与结点的区别,以及如何使用typedef简化数据类型。接着,讲解了单链表的插入、删除、查找等基本操作,特别强调了带头结点和不带头结点的不同处理方式。此外,还讨论了单链表的局限性和双链表的优势。最后,提到了单链表的建立方法,如尾插法和头插法,并总结了单链表操作的关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.3 单链表

2.3.1 单链表的定义

在这里插入图片描述

什么是单链表?

在这里插入图片描述
typedef关键字:数据类型重命名
typedef <数据类型> <别名>
如:

  • typedef int zhengshu;
  • typedef int *zhengshuzhizhen;
  • 平时我们写的int x=1相当于zhengshu x=1;
  • 平时我们写的int *p相当于zhengshuzhizhen p;

定义单链表

  • 节点和结点的区别,视频中应该写错了,在数据结构算法中应都为结点。节点呢,被认为是一个实体,有处理能力,比如,网络上的一台计算机;而结点则只是一个交叉点,像“结绳记事”,打个结,做个标记,仅此而已,还有就是,要记住:一般算法中点的都是结点

  • 法一:先struct定义结构体再用typedef重命名在这里插入图片描述

  • 法二(最简单)在这里插入图片描述这里直接同时用typedef和struct,把单链表结点命名为LNode,把指向struct LNode的指针命名为*LinkList

  • struct LNode *是指向下一结点的指针,这里名字设为next;

  • 表示一个单链表时,只需声明一个头指针L
    在这里插入图片描述

GetElem:把链表L中第i个结点取出来并返回

在这里插入图片描述

  • 因为要返回第i个结点,故要用LNode*来强调返回的是结点;
  • 又因为要从单链表中寻找第i个结点,故要后面的LinkList要强调这是一个单链表
  • 强调这是一个结点用LNode*
  • 强调这是一个单链表用LinkList

初始化单链表

  • 不带头结点时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值