线性表
- #在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。 一组数据中包含的元素个数可能发生变化(可以增加或删除元素) #对于这种需求,最简答的解决方案便是将这样一组元素看成一个序列,用元素在序列里的位置和顺序,表示实际应用中的某种有意义的信息,或者 表示数据之间的某种关系。 #这样的一组序列元素的组织形式,我们可以将其抽象为线性表。一个线性表是某元素的一个集合,还记录着元素之间的一种顺序关系。 #线性表是最基本的数据结构之一,在实际程序中应用非常广泛,它还经常被用作更复杂的数据结构的实现基础。 #根据线性表的实际存储方式,分为两种实现模型: - 顺序表 将元素顺序地放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。 - 链表 将元素存放在通过链接构造起来的一系列存储块中。
顺序表
链表
#为什么需要链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。 链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 #定义 链表是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址) #单向链表 - 单向链表也叫单链表 是链表中最简单的一种形式, 它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点, 而最后一个节点的链接域则指向一个空值。