数据结构之链表基本概念
数据域
存储数据元素的域
指针域
存储直接后继位置的域
指针或链
指针域中存储的信息
结点Node
指针域与数据域组成的数据元素 ai的存储映像。换句话说就是:结点由存放数据元素的数据域和存放后继结点地址的指针域组成。
链式存储结构
n个节点链结成一个链表,即为线性表的链式存储结构
单链表
每个结点只包含一个指针域的链表
头指针
链表中的第一个节点的存储位置叫头指针,整个链表的存取就必须是从头指针开始进行的。
头结点
在单链表的第一个结点前附设一个结点,称为头结点。
头结点的数据域可以不存储任何信息
头指针与头结点的异同
头指针
- 头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针。
- 头指针具有标志作用,所以常用头指针冠以链表的名字。
- 无论链表是否为空,头指针均不为空。头指针是链表的必要元素。
头结点
- 头结点是为了操作的统一和方便而设立额,放在第一元素的结点之前,其数据域一般无意义。
- 有了头结点,对在第一元素结点前插入结点和删除第一节点,其操作与其他结点的操作就统一了。
- 头结点不一定就是链表必需要素。
代码实现
线性表的单链表存储结构
typedef struct Node{
int data;
struct Node *next;
}Node;
typedef struct Node *LinkList; /*定义LinkList*/