[持续更新][考研复习]数与二叉树篇

数与二叉树

空树--结点数为0的树

* 什么是两个结点之间的路径?

只能从上往下走

* 什么是路径长度?

经过几条边

  • 结点的层次(深度)---从上往下数
  • 结点的高度---从下往上数
  • 树的高度(深度)---总共多少层
  • △结点的度---有几个孩子(分支)
  • △树的度---各结点的度的最大值

有序树vs.无序树

有序树---各子树从左到右是 有次序 的,不能互换

  • 例如族谱

无序树---各子树从左到右是 无次序 的,能互换

  • 省级市级划分

常见考点1:结点数 = 总度数+1

常见考点2: 度为m的数、m叉树的区别

  • 数的度---各结点的最大值
  • m叉树---每个结点最多只能有m个孩子的树(3叉空树也可以存在)

度:是先有树才有度;n叉树是先规定是n叉树再有的树。

常见考点3:

fig:

常见考点4:

等比数列求和

常见考点5:

fig:

常见考点6:

fig:

二叉树的基本概念

fig:

几个特殊的二叉树

fig:

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

fig:

fig:

fig:

二叉树的常考性质

常见考点:

fig:

fig:

fig:

完全二叉树的常考性质

fig:

fig:

fig:

考点总结:

fig:

二叉树的顺序存储

#define MaxSize 100
struct TreeNode{
//ElemType value;
int value;
bool isEmpty;
};

TreeNode t[MaxSize];

fig:

如果不是完全二叉树

fig:

最坏情况

fig:

所以一般不用顺序存储!!

二叉树的链式存储

#define MaxSize 100
typedef struct BiTNode{
int data; //数据域
struct BiTNode *lchild,*rchild;//左右孩子指针
}BiTNode,*BiTree;

fig:

二叉树的遍历

先序遍历:根左右(NLR)

中序遍历:左根右(LNR)

后序遍历:左右根(LRN)

fig:

算术表达式的“分析树“

fig:

先序遍历(代码)

fig:

fig:

递归的遍历空间复杂度:O(h)

代码求树的深度

fig:

二叉树的层序遍历

利用辅助队列

fig:

posted @ 2023-07-07 15:02  J1nWan  阅读(74)  评论(0)    收藏  举报