单链表的定义
线性表的链式存储又称为单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。 为了建立起数据元素之间的线性关系,对每个链表结点,除了存放元素自身的信息之外,还需要存放一个指向其后继的指针。
每个结点包括数据域和指针域。节点是一个结构体,看一下结构体的定义:
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
注意这是节点而不是整个单链表。
节点的第一个部分是数据域data。
第二个部分是指针next,指向的类型是节点的类型,表示指向下一个节点。
节点的名字取为LNode。
结构体的指针类型记作LinkList。
那么如何表示一个单链表呢?
单链表的两种建表方法
头结点和头指针的区别?
不管带不带头结点,头指针始终指向链表的第一个结点,而头结点是带头结点链表中的第一个结点,结点内通常不存储信息。
为什么要设置头结点?
- 处理操作起来方便 例如:对在第一元素结点前插入结点和删除第一结点起操作与其它结点的操作就统一了
- 无论链表是否为空,其头指针是指向头结点的非空指针,因此空表和非空表的处理也就统一了。
如何建立单链表?按照插入位置分为两种方式:
1.头插法建立单链表:
建立新的节点分配内存空间,将新节点插入到当前链表的