线性表是具有相同数据类型的 n(n>=0) 个数据元素的有限序列。其中 n 为表长, 当 n=0 时线性表是一个空表。若用 L 命名线性表,其一般表示为:
L = (a1, a2, a3, …, an)
数字下标为元素的位序。位序从 1 开始。位序为 1 的元素称为表头元素,位序最大的元素为表尾元素。
除表头元素外,每个元素都有且仅有一个直接前驱;除表尾元素外,每个元素有且仅有一个直接后继。
线性表:Linear List
线性表是数据元素在逻辑上顺序排列的抽象数据类型。
可以按存储结构(物理分布情况)分类:
顺序表:数据元素在内存中按顺序排列存储的线性表。
链表:数据元素在内存中离散分布,由指针按顺序连接的线性表。按指针数量又可细分:
单链表,除表尾元素外,每个数据元素只有一个指针,指向其后面的元素。
双链表:除表头和表尾元素外,每个数据元素有两个指针,分别指向前一项和后一项元素。
循环链表:表头和表尾元素相连的链表。
静态链表:数据元素分布在一块固定内存(数组)中的链表。
1、为什么要实现对数据结构的基本操作?
团队合作编程,你定义的数据结构要让别人能够很方便地使用(封装)
将常用的操作/运算封装成函数,避免重复工作,降低出错风险。
2、基本操作
初始化表,构造一个空的线性表,分配内存空间。
销毁线性表,释放内存空间。
插入,在表中指定位置插入一个元素。
删除,删除表中指定元素。
按值查找,查找表中包含指定关键字的元素。
按位查找,根据位序获取元素的值。
3、其他常用操作
求表长,返回线性表的长度,即数据元素的个数。
显示表,按顺序将线性表所有内容显示出来。
判断空表,如果线性表是空的,没有一个元素,返回 true。反之返回 false。