【数据结构】二叉树

完全二叉树

是指所有结点度数小于等于2的树

所以这种情况也是:

几条性质

  1. 一个具有n个结点的完全二叉树的深度为: log ⁡ 2 ( n + 1 ) 的结果向上取整。 \\\log_{2}(n+1) \ \ 的结果向上取整。 log2(n+1) 的结果向上取整。
  2. 设度为0的结点个数是n~0~,度为1的结点个数是n~1~,度为2的结点个数是n~2~,那么n~0~ = n~2~ + 1。

推导:一棵树的所有结点个数为n~0~+n~1~+n2 ---> 这棵树的边有n~0~+n~1~+n~2~ -1 条

这棵树的边数同时也等于n1+2*n2(度为0的能提供0条边,1的提供1条边,2的提供2条边)

那么n~0~+n~1~+n~2~ -1 = n~1~+2 *n~2~

可得 n~0~ = n~2~ + 1

证毕。

  1. 度数之和等于边数的二倍(握手定理)
  2. 树中结点与边的关系为结点数-边数=1
  3. 高度为h的二叉树至多有2^h^-1个结点(满二叉树)

利用等比数列求和公式算得:

将各层结点个数加起来即可。

遍历方式

以这棵树为例:

前序

所有子树按照 根左右的方式进行遍历

A B D NULL NULL E NULL NULL C F NULL NULL NULL

中序

所有子树按照 左根右 的方式进行遍历

NULL D NULL B NULL E NULL A NULL F NULL C NULL

后序

所有子树按照 左右根 的方式进行遍历

NULL NULL D NULL NULL E B NULL NULL F NULL C A

层序

所有子树按照 从上到下 从左到右 的方式进行遍历

ABCDEF

相关推荐
蒋星熠31 分钟前
(枚举专题)组合数枚举
c语言·数据结构·c++·算法
好易学数据结构1 小时前
可视化图解算法:反转链表
数据结构·算法·leetcode·链表·面试·力扣·笔试·牛客网·链表反转
轩源源1 小时前
封装哈希表实现unordered_map和unordered_set
开发语言·数据结构·c++·算法·哈希算法·散列表
Vitalia1 小时前
⭐算法OJ⭐全排列【回溯】(C++实现)Permutations II
数据结构·c++·算法
Doopny@1 小时前
计算星期几(信息学奥赛一本通-1083)
数据结构·算法
ん贤2 小时前
【数据结构】链表
数据结构·链表
a_j582 小时前
算法与数据结构(回文数)
数据结构
呵呵哒( ̄▽ ̄)"2 小时前
绪论数据结构基本概念(刷题笔记)
数据结构
熊峰峰2 小时前
数据结构第八节:红黑树(初阶)
开发语言·数据结构·c++·算法
f狐0狸x3 小时前
【蓝桥杯每日一题】3.8
数据结构·c++·算法·蓝桥杯