复习

线性表

2018-04-13  本文已影响11人  n油炸小朋友

线性表

线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储),但是把最后一个数据元素的尾指针指向了首位结点)。

我们说"线性"和"非线性",只在逻辑层次上讨论,而不考虑存储层次,所以双向链表和循环链表依旧是线性表。

在数据结构逻辑层次上细分,线性表可分为一般线性表受限线性表。一般线性表也就是我们通常所说的"线性表",可以自由的删除或添加结点。受限线性表主要包括栈和队列,受限表示对结点的操作受限制。

特征

1.集合中必存在唯一的一个"第一元素"。

2.集合中必存在唯一的一个 "最后元素" 。

3.除最后一个元素之外,均有 唯一的后继(后件)。

4.除第一个元素之外,均有 唯一的前驱(前件)。

存储结构

线性表主要由顺序表示或链式表示。在实际应用中,常以[栈]、[队列]、[字符串]等特殊形式使用。

顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,称为线性表的顺序存储结构或顺序映像(sequential mapping)。它以"物理位置相邻"来表示线性表中数据元素间的逻辑关系,可随机存取表中任一元素。

链式表示指的是用一组任意的存储单元存储线性表中的数据元素,称为线性表的链式存储结构。它的存储单元可以是连续的,也可以是不连续的。在表示数据元素之间的逻辑关系时,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置),这两部分信息组成数据元素的存储映像,称为结点(node)。它包括两个域;存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。指针域中存储的信息称为指针或链 。


链表Tip

结构特点

1.均匀性:同一线性表的各数据元素必定具有相同的数据类型和长度。

2.有序性:各数据元素在线性表中的位置只取决于它们的序号,数据元素之前的相对位置是线性的。

头指针与头结点的异同

头指针
头结点

单链表结构和顺序存储结构的对比:

存储分配方式
时间性能
上一篇下一篇

猜你喜欢

热点阅读