数据结构与算法简记--二叉树

Posted wod-y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法简记--二叉树相关的知识,希望对你有一定的参考价值。

二叉树(Binary Tree)


 

  • 根节点、父节点、兄弟节点、叶子节点
  • 高度、深度、层的概念

技术图片

二叉树

顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点,并不要求都要有二个节点,有的只有左节点,有的只有右节点

技术图片

满二叉树

  • 图中编号2的二叉树,叶子节点全都在最底层,除了叶子节点之外,每个节点都有左右两个子节点,这种二叉树就叫作满二叉树

完全二叉树

  • 图中编号3的二叉树,叶子节点都在最底下两层,最后一层的叶子节点都靠左排列,并且除了最后一层,其他层的节点个数都要达到最大,这种二叉树叫作完全二叉树

如何表示(或者存储)一棵二叉树?

  • 链式存储法
  • 顺序存储法
    • 基于数组
    • 如果节点 X 存储在数组中下标为 i 的位置,
    • 下标为 2 * i 的位置存储的就是左子节点,
    • 下标为 2 * i + 1 的位置存储的就是右子节点。
    • 反过来,下标为 i/2 的位置存储就是它的父节点。通过这种方式,我们只要知道根节点存储的位置(一般情况下,为了方便计算子节点,根节点会存储在下标为 1 的位置),这样就可以通过下标计算,把整棵树都串起来。
    • 适用于完全二叉树,如果是非完全二叉树会浪费空间;
    • 堆就是完全二叉树,且常使用数组存储数据

二叉树的遍历

  • 前序遍历--访问顺序:父节点--》左子节点--》右子节点
  • 中序遍历--访问顺序:左子节点--》父节点--》右子节点
  • 后序遍历--访问顺序:左子节点--》右子节点--》父节点

二叉查找树(Binary Search Tree)

 

以上是关于数据结构与算法简记--二叉树的主要内容,如果未能解决你的问题,请参考以下文章

算法创作 | 二叉树遍历问题解决方法

数据结构与算法简记:AVL树

数据结构与算法学习笔记 树

数据结构与算法学习笔记 树

数据结构与算法学习笔记 树

考研数据结构与算法树与二叉树