美文网首页
数据结构-二叉树

数据结构-二叉树

作者: jkwen | 来源:发表于2021-05-09 20:09 被阅读0次

二叉树是一种特殊的树,描述的是一种非线性数据结构。特殊的地方在于从一个节点出发,最多只能有两个孩子节点,而普通的树是没有限制的。树的构成满足以下几个条件,

  1. 有且仅有一个特定的称为根的节点。
  2. 除根节点外都可称为子节点,子节点可分为若干个互不相交的有限集合,每个集合又是一棵树。
    二叉树示例.jpg 这是我找的一张二叉树示例图,根据树的表述,我们还能知道,树的高度(深度)就是树的最大层级数,图例中就是 3.

二叉树的表示

通常,用链表表示会更合适点也更容易理解,当然也可以用数组表示。当用数组表示时,需要记住以下公式,

//当根节点从 0 开始时
//left 表示左节点的下标,p 表示父节点下标
left = 2 * p + 1
//right 表示右节点的下标,p 表示父节点下标
right = 2 * p + 2
//如果根节点从 1 开始,那么有点不同
left = 2 * p
right = 2 * p + 1
//根据上述公式也能推导出 p 的下标

二叉树常见类型

满二叉树,满足1. 所有非叶子节点都有左右孩子节点,2.所有叶子节点都在同一层级上。

完全二叉树,对一棵树按层级顺序编号,如果与同样深度的满二叉树的相应节点位置都相同,则就是完全二叉树。这么来看其实满二叉树就是特殊的完全二叉树。

二叉查找树(二叉排序树),满足1.左子树上所有节点值均小于根节点值,2.右子树上所有节点值均大于根节点值,3.左右子树也都是二叉查找树。

二叉树的遍历

二叉树最常见也最基础的操作就是遍历了,分为深度优先遍历和广度优先遍历,其中深度优先遍历又分为前序,中序,后序遍历。

相关文章

  • 数据结构 - 概要

    数组 链表 堆/栈/队列 树 数据结构 - 二叉树数据结构 - 二叉查找树数据结构 - 平衡二叉树数据结构 - A...

  • 关于函数递归和迭代的转化, 及尾递归相关知识的接触和思考

    javascript实现数据结构: 树和二叉树,二叉树的遍历和基本操作 js 二叉树 【数据结构与算法】深入浅出递...

  • 二叉树非递归遍历

    二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有...

  • 二叉树的遍历

    数据结构算法 二叉树的遍历

  • python实现二叉树的遍历

    二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,...

  • IOS基础知识-算法与数据结构篇

    数据结构 通常可以分为四类: 数据结构的存储方式: 链表可分为: 什么是树 什么是二叉树 二叉树遍历 在二叉树的一...

  • 数据结构

    数据结构 数据结构概念 顺序表 链表 队列 栈 二叉树 常用排序算法

  • 2018-05-11 二叉树的三种遍历方法

    二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三...

  • 数据结构之二叉树(一)——绪论

    前言 二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构,包括完全二叉树、满二叉树、二叉查找树、AV...

  • MySQL索引

    索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构: 二叉树 红黑树 哈希 B-Tree 二叉树容易...

网友评论

      本文标题:数据结构-二叉树

      本文链接:https://www.haomeiwen.com/subject/uukrdltx.html