数据结构:二叉树

二叉树(一对多)

树:

树:由根节点和若干个子节点构成的具有一对多关系的数据的集合,称为树形结构。

空树:一个节点都没有

节点:

根节点:最顶层的结点

叶子节点(终端节点):向后没有子节点的节点

分支节点(非终端节点):有子节点的节点

度:

树的深度:数的层数

树的度(数的广度):树中节点最大的度是该数的广度
节点的度:节点的子节点个数

叶子节点的节点的度为0

二叉树:

二叉树:树的广度为2的树形结构,且各节点的左右子节点不能交换

满二叉树:在不增加层数的情况下,无法再增加一个节点

K层满二叉树:第K层的节点个数:2^(K-1)

K层总共节点个数:2^K-1
完全二叉树:在满二叉树基础上,按照从左到右,从上到下依次增加节点的树形结构

在满二叉树基础上,按照从下到上,从右到左依次删除节点的树形结构

满二叉树一定是完全二叉树

二叉树的遍历:

前序遍历:根、左子树、右子树

中序遍历:左子树、根、右子树

后序遍历:左子树、右子树、根

层序遍历:从上至下、从左至右

其中,前中后序为深度优先遍历算法,层序为广度优先遍历算法

已知前序(/后序)和中序遍历结果·,可以唯一还原一棵二叉树

API:

1.创建二叉树

2.前序、中序、后序遍历

3.获取节点个数

4.获取树的层数

5.层序遍历

6.销毁树

相关推荐
淡海水10 小时前
08-03-不可变-ImmutableDictionary-TKey-TValue-与ImmutableHashSet-T-持久化哈希树
数据结构·算法·c#·哈希算法·dictionary·immutable
Nil20813 小时前
leetcode 78子集
数据结构·算法·leetcode
喜欢吃燃面14 小时前
深入 C++ STL:从 unordered_set与unordered_map到底层哈希表的原理与实现
数据结构·c++·散列表
en.en..14 小时前
Linux fork() 工作原理
数据结构·算法
不会就选b16 小时前
数据结构之树&&二叉树(二)
数据结构·算法
小刘在重生~18 小时前
Java 集合|Collection、List、ArrayList、LinkedList、泛型、Collections 工具类
java·数据结构·list
我不会起名字32219 小时前
一天一道算法题(29):单调栈
java·数据结构·python·算法·leetcode·golang·单调栈
苦瓜小生19 小时前
【前端】【力扣与手撕】十天带你刷完前端算法与手撕,全是最简单好记的最优解法!day4
前端·数据结构·算法·leetcode·面试
少司府20 小时前
C++进阶:智能指针
开发语言·数据结构·c++·b树·算法·c·智能指针
LuminousCPP21 小时前
数据结构-排序(一):基础排序算法横向对比|冒泡、插入、希尔、堆与双向选择,详解二分 / Knuth 增量
c语言·数据结构·笔记·算法·排序算法