数据结构与算法基础———第二章 线性表
线性结构:一对一
非线性结构:多对一
第二章 线性表
2.1 线性表的定义和特点
-
线性表定义: 线性表是具有相同特性的数据元素的一个有限序列:
(a1,a2,…ai-1,ai,ai+1,…,an)n=0时,为空表。
-
线性表的逻辑特征:
- 在非空的线性表,有且仅有一个开始节点a1,他没有直接前驱,而仅有一个直接后继a2;
- 有且仅有一个终端节点an,它没有直接后继,而仅有一个直接前驱an-1;
- 其余的内部结点ai(2<=i<=n-1)都有且仅有一个直接前驱ai-1和一个直接后继ai+1
线性表是一种典型的线性结构
2.2 案例引入
案例1. 一元多项式的运算:
案例2. 稀疏多项式————>用线性存储会浪费空间
顺序存储结构存在问题:
- 存储空间分配不灵活
- 运算的空间复杂度高
所以有些要用链式存储结构
案例3. 图书信息管理系统:
图书表抽象为线性表
表中每本图书抽象为线性表中数据元素
——————选择适当的存储结构,
——————实现此存储结构上的基本操作
——————利用基本操作完成功能
总结:
- 线性表中数据元素的类型可以分为简单类型,也可以分为复杂类型。
- 许多实际应用问题所涉的基本操作有很大相似性,不应为每个具体应用单独编写一个程序
- 从具体应用中抽象出共性的逻辑结构和基本操作(抽象数据类型),然后实现其存储结构和基本操作