数据结构:4.二叉树

1.概念

  • 树:描述数据一对多关系的数据结构
  • 节点:组成树形结构的数据统称为树型结构中的节点
    • 根节点:只有后继没有前驱
    • 分支节点:既有后继又有前驱,树型结构中的分支节点最多有一个前驱,但可以有多个后继
    • 叶子节点:只有前驱没有后继
  • 前驱(祖先):在中序遍历序列中,当前节点的前一个节点
  • 后继(子孙):在中序遍历序列中,当前节点的后一个节点
  • 度:前驱或后继的个数
    • 入度:均为1
    • 出度:后续节点的个数
  • 层:根节点所在的位置成为第一层,没过一个节点,层数+1
  • 高度:距离该节点最远的叶子节点的距离
  • 深度:距离根节点的节点个数
  • 树的高度 == 树的深度 == 树的层数

2.二叉树

  • 每个节点最多有两个后继节点(子树)的树形结构,通常子树被称作"左子树"和"右子树"
  • 满二叉树
    • 每个节点都有0或2个子节点
    • 所有叶子节点在同一层
  • 完全二叉树
    • 除最后一层外,每层都是满的
    • 最后一层节点从左到右连续排列
  • 左孩子:二叉树中节点左侧的子节点
  • 右孩子:二叉树中节点右侧的子节点
  • 二叉树的特性
    • 第k层最多有:2^(k-1)个节点
    • 前k层最多有:2^k-1个节点
  • 二叉树的遍历
    • 深度优先遍历:DFS
      • 前序遍历:根左右
      • 中序遍历:左根右
      • 后序遍历:左右根
    • 广度优先遍历:BFS
      • 层序遍历

前:A B D H I E J C F G K

中:H D I B E J A F C G K

后:H I D J E B F K G C A

  • 前序+中序------>后序
  • 后序+中序------>前序
相关推荐
代码改善世界1 小时前
【数据结构与算法】栈和队列题解
数据结构
ShineWinsu1 小时前
对于C++:继承的解析—上
开发语言·数据结构·c++·算法·面试·笔试·继承
浅念-5 小时前
C++ 模板进阶
开发语言·数据结构·c++·经验分享·笔记·学习·模版
We་ct6 小时前
LeetCode 222. 完全二叉树的节点个数:两种解法详解(BFS + 二分查找优化)
数据结构·算法·leetcode·typescript
无限进步_7 小时前
21. 合并两个有序链表 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
wengqidaifeng9 小时前
数据结构与算法经典OJ题目详解(C语言):从数组到链表的进阶之路(上)
c语言·数据结构·链表
blackicexs9 小时前
第六周第一天
数据结构·算法
We་ct10 小时前
LeetCode 236. 二叉树的最近公共祖先:两种解法详解(递归+迭代)
前端·数据结构·算法·leetcode·typescript
历程里程碑11 小时前
普通数组---合并区间
java·大数据·数据结构·算法·leetcode·elasticsearch·搜索引擎
无忧.芙桃11 小时前
AVL树的实现
数据结构·c++