一:二叉树
- 1 定义
(1)定义


树是一种非线性的数据结构,它是由n个有限节点组成有层次关系的集合

(2)基本术语
父子节点:每个节点下方直接相连的节点称为子节点,上方直接相连的节点称为父节点
子树:以子节点为根的树称为子树
根节点和叶子节点:最上方没有父节点的节点为根节点,最下层没有子节点的节点为叶子节点

1.2 存储与定义
(1)顺序存储
二叉树根据层序进行编号后,存放到一位数组中。明显缺点(没法反应二叉树的逻辑关系【不知道节点的左右节点】)
只用于完全二叉树,防止左斜(没有字节点,全在左边或右边)


(2)链式存储
每个节点包括一个数据域,两个指针域

1.3 遍历
(1)定义

(2)先序遍历

(3)中序遍历

(4)后序遍历

(5)层序遍历
按照层次,从左到右依次访问二叉树中的每个节点

1.4 递归遍历
总结

(1)代码模板

解释

(2)类比数组遍历
数组遍历一般通过一个for循环实现,遍历顺序是从前往后
(3)遍历节点顺序
遍历节点顺序仅取决与左右子节点的递归调用顺序,与其它代码无关
1.5 前中后序遍历
(1)定义
在二叉树遍历框架前面加了一套代码

(2)解释
