美文网首页
数据结构-树的一些概念

数据结构-树的一些概念

作者: userheng | 来源:发表于2020-07-13 10:55 被阅读0次

二叉树

性质
二叉树是一个有根树,并且每个节点最多有2个子节点。非空的二叉树,若树叶总数为 n0,分支度为2的总数为 n2,则 n0 = n2 + 1。

图片.png
遍历
  1. 前序遍历:根 > 左 > 右
  2. 中序遍历:左 > 根 > 右
  3. 后序遍历:左 > 右 > 根

满二叉树与完全二叉树

  1. 满二叉树
    如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。


    full_binary_tree.png
  2. 完全二叉树
    一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。


    complete_binary_tree.png
  3. 堆结构

最大堆: 所有的子节点都不比父节点大
最小堆: 所有的子节点都不比父节点小

二叉堆:非常适合用数组进行存储,对于数组中的元素 a[i],其左子节点为 a[2*i+1],其右子节点为 a[2*i + 2],其父节点为 a[(i-1)/2],其堆序性质为,每个节点的值都小于其左右子节点的值。二叉堆中最小的值就是根节点。

二叉查找树

性质

  1. 若任意节点的左子树不空,则左子树上所有的节点值均小于它的根节点的值。
  2. 若任意节点的右子树不空,则右子树上所有的节点值均大于它的根节点的值。
  3. 任意节点的左右子树也分别为二叉查找树。
    中序遍历时,相当于升序排列

平衡树

性质
平衡树是对二叉查找树的改进。一般的二叉查找树的查询复杂度取决于目标结点到树根的距离(即深度),因此当结点的深度普遍较大时,查询的均摊复杂度会上升。平衡树是使得所有叶子的深度趋于平衡。

各种平衡树

  1. AVL树

注:AVL树得名于它的发明者 G. M. Adelson-Velsky 和 Evgenii Landis,他们在1962年的论文An algorithm for the organization of information中公开了这一数据结构。

  1. 红黑树

注:鲁道夫·拜尔(德语:Rudolf Bayer,1939年5月7日-),自1972年以来一直是慕尼黑工业大学信息技术系的名誉教授。他因发明数据结构而出名: B-树(与Edward M. McCreight合作)和UB-树(与Volker Markl合作)以及 红黑树 。他是2001年美国计算机协会SIGMOD Edgar F. Codd年度创意大奖得主。

红黑树和AVL树的对比:

  1. AVL树比红黑树检索更快,因为AVL树更加严格平衡一点。红黑树的插入和删除比AVL树更快。
  2. AVL使用的存储空间要高于红黑树。(AVL树每个节点需要记录平衡因子或高度,这需要一个integer类型,红黑树每个节点只需要一个bit位来记录相关数据)
  3. 红黑树大量的用于一些程序语言的类库中,如Java里的map,而AVL树大量用于需要高速检索的数据库中。

相关文章

  • 数据结构-树的一些概念

    二叉树 性质二叉树是一个有根树,并且每个节点最多有2个子节点。非空的二叉树,若树叶总数为 n0,分支度为2的总数为...

  • 学习javascript数据结构(四)——树

    前言 总括: 本文讲解了数据结构中的[树]的概念,尽可能通俗易懂的解释树这种数据结构的概念,使用javascrip...

  • 排序算法——冒泡排序

    前面介绍了几个常用的数据结构,还剩下两个数据结构:树和图。这两个结构理解概念较为容易,比如树的基本概念,二分搜索树...

  • (一)树结构---基础

    导语 本章都是对树的一些基本概念的区分,是学习树数据结构的基础,对树已经很了解可以直接跳过 为了整体逻辑框架的完整...

  • 14-数据结构探险系列-树篇

    数据结构探险之树篇 树的基本概念 什么是树? 树是节点的有限结合。 上图是我们在树中要基础的概念 根节点:A; 双...

  • 数据结构

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

  • 数据结构--树

    数据结构--树 @(数据结构) 树是节点的有限集合 基本概念 双亲(父结点) :A是BCD的双亲,双亲指的是一个结...

  • 数据结构红黑树添加、修改原理分析

    源码分析大纲 数据结构解析 红黑树试下原理刨析 数据结构解析 1.红黑树 1.1 红黑树概念 红黑树(Red Bl...

  • 读书 【数据与算法】第三章 树与二叉树

    一、 树 基本概念 表现为以分支关系定义的层级关系,非线性数据结构。 1.1 定义 与 性质 树:递归的数据结构一...

  • 2018-07-30 决策树学习记录

    决策树的一些基础概念(根节点,内部结点,叶子结点等),结合数据结构的二叉树/非二叉树其实很好理解。 纯度 这个好像...

网友评论

      本文标题:数据结构-树的一些概念

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