之前介绍了树。
闲话不多说,现在直接看看二叉树吧。
1.二叉树的定义
2.二叉树的五种基本形态
1 .空二叉树是空的(空的)。
2 .根只有一个
3 .只有左边的子树,没有右边的子树
4 .只有右边的子树,没有左边的子树
5 .如图所示在左右两侧
3.平衡二叉树
平衡二叉树不一定是对称的。
用树的最高高度-树的最低高度不能大于1,这样的树就称为平衡二叉树。
图:
图中树的最高高度为4,最低高度为3,4-3=1,1不大于1。
因此,如果差在1以下,都是平衡的二叉树。
否则就是非平衡二叉树。
4.斜树
5.满二叉树
如图所示,这棵树有四层,那四层必须全部填满。 所以被称为二叉树。
如果有n层,它的n层全部都得是满的。
6.完全二叉树
每行必须从左到右按顺序排列。
法则如下。
7.二叉树的性质
都是公式,是通过找规则引导的。 可以直接记忆。
8.二叉树适用的存储结构
顺序存储结构只适合平衡树的存储。
除了完全二叉树、平衡二叉树或者满二叉树,其他的一般都用链式存储结构。
二、 二叉树的遍历
1.前序遍历
DLR、D--根节点、L--根左子树的节点、R--根右子树的节点从根节点开始,按照DLR的顺序判断各节点。2.中序遍历
中顺序为LDR,L--根左子树的节点、D--根节点、R--根的右子树的节点从根节点开始,各节点按LDR的顺序判断。 如图所示,如果a位于中顺扫描的开头,则表示该树没有左子,如果a位于中顺扫描的最后,则表示该树没有右子,为3.后续遍历
LRD、L--根的左部分树的节点、R--根的右部分树的节点、D--根节点从根节点开始,各节点按照LRD的顺序判断。4.层序遍历
层序遍历按层从左到右按1.深优一般基于栈实现,广优一般基于队列实现
2.前序和后序推不出一颗唯一的二叉树。
实现暂存器中顺序扫描:1.从根节点开始,将根节点的左子和其子代的左子长(一直是左子长)…) )最左列)放入暂存器,直到左树中没有下一个节点。 2 .启动堆栈。 如果堆栈顶部的节点没有左节点和右节点,则堆栈自身。 否则,先把自己叠起来,再叠右边孩子和右边孩子所有的左边。 然后又离开堆栈。 3 .出栈顺序为遍历顺序队列实现层序遍历。 1 .根节点开始排队2 .根节点排队,根节点左右子女排队,再排队3 .与其他节点一样,对该节点左右子女排队,再排队4 .排队顺序为层序
不断学习后,我会补充。