实现了一个具有头结点的单链表
有头结点的单链表
线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中的任一元素。但是它在插入和删除操作时,需要移动大量的元素。接下来的线性链表在物理位置上不相邻,但逻辑位置上相邻,所以它没有顺序存储结构所具有的弱点,但同时也失去了顺序表可随机存取的优点。
线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这存储单元可以是连续的,也可以是不连续的)。因此为了表示每个数据元素ai与其直接后继数据元素ai+1之间的逻辑关系,对数据元素ai来说除了存储本身的信息之外,还需存储一个指示其直接后继的信息。这两部分信息组成数据元素ai的存储映像,称为结点,它包括两个域:其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。指针域中存储的信息称为指针或链。n个结点链结成一个链表,即为线性表。
链表的每个结点中只包含一个指针域,故称为线性链表或单链表。
整个链表的存取必须从头指针开始进行,头指针指示链表中的第一个结点的存储位置。同时,由于最后一个数据元素没有直接后继,则线性链表中最后一个结点的指针为空。
实现了一个具有头结点的单链表完整源码