数据结构与算法——线性表
线性结构 二元组 B = (K, R) , K = {a0, a1, …, an-1 }, R = {r},其中 r 为前驱后继关系,具有反对称性和传递性 唯一的开始结点(表头):没有前驱,只有一个唯一的后继 唯一的终止结点(表尾):没有后继,只有一个唯一的前驱 内部结点:一个唯一的前驱和一个唯一的后继 线性表 线性表简称表,是零个或多个元素的有穷序列 表目:线性表中的元素 文件:含有大量记录的线性表又称为文件 索引(下标) 表的长度 空表:长度为零的线性表(n=0) 线性表分类 按访问方式划分: 直接访问型 顺序访问型 目录索引型 按存储方式: 顺序表(数组) 链表 按操作: 线性表:不限操作 栈:在同一端操作,在深度优先搜索、递归等算法中有很好的应用 队列:在两端操作,在宽度优先搜索、层次化处理中有很好的应用 顺序表 顺序表俗称向量,是用数组实现的(固定长度的一维数组) 按索引值从小到大存放在一片相邻的连续区域 结构紧凑,存储密度为1(存储密度 = 数据本身所占存储 / 整个数据结构所占存储) 物理存储关系就能表示逻辑关联关系 链表 链表需要指针表示逻辑关联关系,存储效率不如顺序表 有头链表和无头链表 在一些边界处理的时候,要注意头结点(head)和尾结点(tail)的特殊处理 讨论 线性表的分类方法有哪些?各种线性表名称中,哪些跟存储结构相关?哪些跟运算相关?...