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
初始化单链表
- 不带头结点时