大话数据结构学习笔记(3)

第三章 线性表

线性表:零个或多个数据元素的有限序列。

线性表的顺序存储结构:指的是用一段地址连续的存储单元依次存储线性表的数据元素。

image

线性表顺序存储结构的优缺点:

image

为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对于数据元素ai来说,除了存储其本身上的信息之外,还需存储一个指示其直接后继的信息。我们把存储数据元素信息的域称为数据域,把存储直接后继元素位置的域称为指针域。指针域中存储的信息称为指针或链。这两部分信息组成数据元素ai的存储镜像 称为结点(Node)。

n个结点链结成一个链表,即为线性表的链式存储结构。

image

线性链表中第一个结点的存储位置称为头指针。最后一个结点的指针为空。

image

单链表的第一个结点前一般还有有个头结点,用于存放头指针。

image

头指针和头结点的异同

image

对于插入或删除数据越频繁的操作,单链表的效率优势就越加明显。

单链表结构与顺序存储结构的优缺点:

image

结论:

1.若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构,若需要频繁插入和删除时,宜采用单链表结构。

2.当线性表中的元素个数变化较大或者根本不知道多大时,最好用单链表结构,这样可以不用考虑存储空间大小问题。如果事先知道长度,用顺序存储结构效率会高很多。

用数组描述的链表叫做静态链表。

将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表

双向链表:是在单链表的每个结点中,在设置一个指向其前驱结点的指针域。

本章小结:

image

推荐阅读更多精彩内容