数组和广义表
数组
概述
- 数组是顺序存储的随机存储结构,是其他数据结构实现顺序存储结构的基础
二维数组
逻辑结构
存储结构
- 二维数组的存储结构是由多个一维数组组合而成的,组合方式有两种
- 多维数组都是基于一维数组存储的,因此只能进行赋值、取值两种随机存取操作,不能进行插入、删除操作
- 二维数组的顺序存储结构
采用一维数组连续存储二维数组的所有元素,将若干连续的存储单元在逻辑上划分成多个行/列。 - 二维数组的动态存储结构
二维数组所包含的多个一维数组可以分散存储。一维数组存放多个一维数组的地址。
应用:矩阵运算
特殊矩阵的压缩存储
三角矩阵、对称矩阵、对角矩阵的压缩存储
-
线性压缩存储三角矩阵
-
使用三角形的二维数组压缩存储三角矩阵
稀疏矩阵的压缩存储
稀疏矩阵非零元素三元组(row行号,column列号,value元素值),(i,j,v)
将问题转换成三元组线性表的存储问题
- 稀疏矩阵非零元素三元组
- 稀疏数组三元组顺序表
- 稀疏数组三元组单链表
广义表
概述
- 广义表的深度是指子表嵌套的层数,即表中所含括号的层数,原子的深度为0,空表的深度为1
- 广义表的特性
2.1 线性结构
2.2 子表嵌套,层次结构
2.3 包含共享元素
2.4 可递归
二叉树和树
二叉树
- 二叉树的递归定义
- 二叉树的术语
- 二叉树的性质
- 二叉树的抽象数据类型
- 二叉树的存储结构
5.1 二叉树的顺序存储结构
5.2 二叉树的链式存储结构