【数据结构】二叉树

完全二叉树

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

所以这种情况也是:

几条性质

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

推导:一棵树的所有结点个数为n0+n1+n2 ---> 这棵树的边有n0+n1+n2 -1 条

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

那么n0+n1+n2 -1 = n1+2 *n2

可得 n0 = n2 + 1

证毕。

  1. 度数之和等于边数的二倍(握手定理)
  2. 树中结点与边的关系为结点数-边数=1
  3. 高度为h的二叉树至多有2h-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

相关推荐
像污秽一样19 分钟前
算法设计与分析-习题4.3
数据结构·算法·排序算法
沈阳信息学奥赛培训23 分钟前
C++ 指针* 和 指针的引用 *& (不是指针和引用,是指针的引用)
数据结构·c++·算法
会编程的土豆39 分钟前
【数据结构与算法】 树
数据结构·算法
喵喵蒻葉睦1 小时前
力扣 hot100 滑动窗口最大值 单调双端队列 java 简单题解
java·数据结构·算法·leetcode·双端队列·滑动窗口·队列
样例过了就是过了1 小时前
LeetCode热题100 搜索二维矩阵
数据结构·c++·算法·leetcode·矩阵
像污秽一样1 小时前
算法设计与分析-习题8.1
数据结构·算法·dfs·dp
葳_人生_蕤2 小时前
Hot100——739.每日温度
数据结构·算法
历程里程碑2 小时前
40 UDP - 2 C++实现英汉词典查询服务
linux·开发语言·数据结构·c++·ide·c#·vim
式5162 小时前
python编程实战(六)
数据结构
I_LPL2 小时前
day54 代码随想录算法训练营 图论专题8
数据结构·图论·拓扑排序·dijkstra算法