所属专栏:数据结构与算法
前期内容:
目录
1.1线性表的定义和特点
例如:
- 12星座(双鱼、白羊、水瓶….)
- 某单位历年拥有的计算机的数量(100、120…)
- 26个英文字母(A,B,C,…,Z)
这些都是线性表。表中的每一项就是一个数据元素。在稍微复杂的线性表中,一个数据元素可以包含若干个数据项。
同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系。
对千非空的线性表或线性结构, 其特点是:
(1) 存在唯一的一个被称作 “第一个" 的数据元素;
(2)存在唯一的一个被称作 “最后一个" 的数据元素;
(3)除第一个之外, 结构中的每个数据元素均只有一个前驱;
(4)除最后一个之外,结构中的每个数据元素均只有一个后继。
线性表是n个具有相同特性的数据元素的有限序列。线性表是一种实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...
线性表在逻辑上是线性结构,也就是说是连续的一条直线,但在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。
1.2案例引入
eg: 图书信息管理系统:
需要的功能:查找、插入、删除、修改、排序、计数
图书表抽象为线性表
表中每本图书抽象线性表中的数据元素
可以使用:图书顺序表、图书链表
- 选择适当的存储结构
- 实现此存储结构上的基本操作
- 利用基本操作完成功能
1.3线性表的类型定义
抽象数据类型线性表的定义如下:
ADT List{
数据对象:D={ai|ai属于Elemset,(i=1,2…,n,n>=0)}
数据关系:R={<ai-1,ai>|ai-1,ai属于D,(i=2,3,…,n)}
基本操作:
initList(&L);
DestroyList(&L);
….
等等
}ADT List
基本操作
- InitList(&L)
操作结果:构造一个空的线性表L
- DestroyList(&L)
初始条件:线性表L已经存在
操作结果:销毁线性表L
- CharList(&L)
初始条件:线性表L已经存在
操作结果:将线性表L重置为空表
- ListEmpty(L)
初始条件&#x