本文是coursera的课程(数据结构基础)的学习笔记:https://www.coursera.org/learn/shuju-jiegou-suanfa
线性表的概念
线性表简称表,是零或多个元素的有穷序列,通常可以表示成K1,K2,…….,Kn(n>=1)
表目:线性表中元素(可包含多个数据项,记录)
索引(下标):i称为表目k1的“索引”或“下标”
表的长度:线性表中所含元素的个数n
空表:长度为零的线性表(n=0)
线性表特点
操作灵活,其长度可以增长、缩短
线性结构
二元组B=(K,R),K={a0,a1,….,a(n-1)} R={r}
有一个唯一的开始结点,它没有前驱,有一个唯一的直接后继
一个唯一的终止结点,它有一个唯一的直接前驱,而没有后继
其它的结点皆称为内部结点,每一个内部结点都有且仅有一个唯一的直接前驱,也有一个唯一的直接后继。
前驱/后继关系r,具有反对称性和传递性
特点
均匀性:虽然不同线性表的数据元素可以是各种各样的,但对于同一线性表的各数据元素必定具有相同的数据类型和长度。
有序性:各数据元素在线性表中都有自己的位置,且数据元素之间的相对位置是线性的
线性结构——分类
按复杂长度划分
简单的:线性表、栈、队列、散列表
高级的:广义表、多维数组、文件……
按访问方式划分
直接访问型
搜索访问型
目录索引型
按操作划分
插入操作在表的一端,删除操作在另一端
插入和删除操作都限制在表的同一端进行
所有表目都是同一类型结点的线性表
不限制操作形式
根据存储的不同分为:顺序表,链表
线性表
栈(LIFO)
队列(FIFO)
2.1 线性表
三个方面
线性表的逻辑结构
线性表的存储结构
线性表运算
2.1.1 线性表逻辑结构
主要属性包括
线性表的长度
表头(head)
表尾(tail)
当前位置(current position)