天天看点

2.1 线性表

线性表是具有相同数据类型的 n(n>=0) 个数据元素的有限序列。其中 n 为表长, 当 n=0 时线性表是一个空表。若用 L 命名线性表,其一般表示为:

L = (a1, a2, a3, …, an)

数字下标为元素的位序。位序从 1 开始。位序为 1 的元素称为表头元素,位序最大的元素为表尾元素。

除表头元素外,每个元素都有且仅有一个直接前驱;除表尾元素外,每个元素有且仅有一个直接后继。

线性表:Linear List

线性表是数据元素在逻辑上顺序排列的抽象数据类型。

可以按存储结构(物理分布情况)分类:

顺序表:数据元素在内存中按顺序排列存储的线性表。

链表:数据元素在内存中离散分布,由指针按顺序连接的线性表。按指针数量又可细分:

单链表,除表尾元素外,每个数据元素只有一个指针,指向其后面的元素。

双链表:除表头和表尾元素外,每个数据元素有两个指针,分别指向前一项和后一项元素。

循环链表:表头和表尾元素相连的链表。

静态链表:数据元素分布在一块固定内存(数组)中的链表。

1、为什么要实现对数据结构的基本操作?

团队合作编程,你定义的数据结构要让别人能够很方便地使用(封装)

将常用的操作/运算封装成函数,避免重复工作,降低出错风险。

2、基本操作

初始化表,构造一个空的线性表,分配内存空间。

销毁线性表,释放内存空间。

插入,在表中指定位置插入一个元素。

删除,删除表中指定元素。

按值查找,查找表中包含指定关键字的元素。

按位查找,根据位序获取元素的值。

3、其他常用操作

求表长,返回线性表的长度,即数据元素的个数。

显示表,按顺序将线性表所有内容显示出来。

判断空表,如果线性表是空的,没有一个元素,返回 true。反之返回 false。

继续阅读