[持续更新][考研复习]数与二叉树篇
数与二叉树
空树--结点数为0的树
* 什么是两个结点之间的路径?
只能从上往下走
* 什么是路径长度?
经过几条边
- 结点的层次(深度)---从上往下数
- 结点的高度---从下往上数
- 树的高度(深度)---总共多少层
- △结点的度---有几个孩子(分支)
- △树的度---各结点的度的最大值
有序树vs.无序树
有序树---各子树从左到右是 有次序 的,不能互换
- 例如族谱
无序树---各子树从左到右是 无次序 的,能互换
- 省级市级划分
常见考点1:结点数 = 总度数+1
常见考点2: 度为m的数、m叉树的区别
- 数的度---各结点的最大值
- m叉树---每个结点最多只能有m个孩子的树(3叉空树也可以存在)
度:是先有树才有度;n叉树是先规定是n叉树再有的树。
常见考点3:

常见考点4:
等比数列求和
常见考点5:

常见考点6:

二叉树的基本概念

几个特殊的二叉树

完全二叉树 只要结点编号能跟满二叉树对得上



二叉树的常考性质
常见考点:



完全二叉树的常考性质



考点总结:

二叉树的顺序存储
#define MaxSize 100
struct TreeNode{
//ElemType value;
int value;
bool isEmpty;
};
TreeNode t[MaxSize];

如果不是完全二叉树

最坏情况

所以一般不用顺序存储!!
二叉树的链式存储
#define MaxSize 100
typedef struct BiTNode{
int data; //数据域
struct BiTNode *lchild,*rchild;//左右孩子指针
}BiTNode,*BiTree;

二叉树的遍历
先序遍历:根左右(NLR)
中序遍历:左根右(LNR)
后序遍历:左右根(LRN)

算术表达式的“分析树“

先序遍历(代码)


递归的遍历空间复杂度:O(h)
代码求树的深度

二叉树的层序遍历
利用辅助队列


浙公网安备 33010602011771号