链表是结构体变量与结构连接在一起,在数据中线性排列。
链表都有一个头指针,一般以head 表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。链表中每个节点都分为两部分,一个数据域,一个是指针域。
第0个结点称为头结点,它存放有第一个结点的首地址,没有数据,只是一个指针变量。以下的每个结点都分为两个域,一个是数据域,存放各种实际的数据,如学号 num,姓名 name,性别 sex 和成绩score 等。另一个域为指针域,存放下一结点的首地址。链表中的每一个结点都是同一种结构类型。
首结点:存放第一个有效数据的结点
头结点:在单链表的第一个结点之前附设一个结点,它没有直接前驱,称之为头结点,头结点的数据域可以不存储任何信息(一般不使用,可以用其记录链表结点个数),指针域指向第一个结点(首结点)的地址。头结点的作用是使所有链表(包括空表)的头指针非空
头指针:指向头结点的指针,访问链表的关键
尾结点:存放最后一个有效数据的结点
尾指针:指向尾节点的指针
链表就如同火车,head指向第一个元素:第一个元素又指向第二个元素,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束。
以下有借鉴
空链表
--->NULL
head
有n个结点的链表