数据结构之线性表基本概念和实现

2020-03-27 15:31发布

1、线性表的定义:线性表是具有相同特性数据元素的一个有限序列。

该序列中所含元素的个数叫做线性表的长度,n可以为0,表示线性表为空。

2、线性表的逻辑特性

只有一个表头、只有一个表尾、表头没有前驱,表尾没有后继,其他节点只有一个前驱一个后继。

3、线性表的存储结构

(1)顺序表

顺序表就是把线性表中的所有元素按照其逻辑顺序,一次存储到从指定的存储位置开始的一块连续的内存空间中。

(2)链表

在链表中,每个节点不但包含所存元素的信息,还包含元素之间的逻辑关系信息。

(3)两种存储结构的比较

顺序表具有两个特性:

  • 随机访问特性:即只要知道第一个元素的位置,其他元素可以立即找到。

  • 空间预先分配特性:由于顺序表存储空间是提前分配好的,一旦分配,后期的操作过程都不会改变。

  • 链表不支持随机访问,同时链表中的节点的存储空间的利用率比顺序表稍低(还需要存储地址)。链表支持存储空间的动态分配(存储位置可以在内存的任意位置,所以不需要一次性的划分完所有的节点的空间给列表)。

链表有以下五种形式:

1)单链表

两者的判空条件不同:

带头结点:head->next为空

不带头结点:head为null

(2)双链表

(5)静态链表