树的简单理解

作者: Valkyrie0 | 来源:发表于2017-04-17 16:52 被阅读32次
  • 树的理解性定义
  • 树的用处
  • 树的实现和二叉树
  • 树的遍历
Paste_Image.png

1、树的理解性定义

树是分组、层次结构:

  • 分组
    树由树根和其余节点组成,而其余节点分为m(m>0)个互不相交的有限集,所以把这些有限集合称为原树的子树
    可以把每个子树理解为一组,而子树内部又递归的分组下去

与分组有关的术语:
森林(Forest) ,Tree=(root,F) ,其中F为森林

  • 层次
    树状图本身是有层次的,这样利于高效查找

与层次相关的术语:
结点的层次(Level)、树的深度(Depth)
遍历:层次遍历

2、树的用处

基本上有序列(广义)的地方就可以应用树,因为树结构即是一种序列索引结构
序列的核心接口就是三个cha:插、查、X(增查删)

对于这个三个接口,我们要解决的核心问题是:
①效率:怎么查得快
②稳定:如果不支持增删,那么序列就是静态结构,用处不大。而支持增删之后,需要考虑如何保证序列内部结构不会被增删操作破坏,导致查询效率受到影响。

树通过其结构来表达了一种划分查找方法,这一方法相比于遍历搜索的复杂度O(n),一般情况下复杂度仅有O(logn)。
树则可以动态改变存储空间,且运用一些手段来保护自身索引结构。

3、树的实现和二叉树

树转换为二叉树

由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。
将树转换成二叉树的步骤是:
(1)加线。就是在所有兄弟结点之间加一条连线;
(2)抹线。就是对树中的每个结点,只保留他与第一个孩子结点之间的连线,删除它与其它孩子结点之间的连线;
(3)旋转。就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。


树的表示

由于树中的每个结点的度不统一,所以显然,首先我们想到的是结构体加链表的形式对其进行表示,如下图所示:

Paste_Image.png
note: 但这种是不正确的实现方式
我们知道,当一棵树具有n个节点时,它具有n-1条边,而上述的表示方式则需要3n(因为树的度为3)个存储单元来存放树的边。这样一样,2n+1个存储单元就被浪费了。因此为了减少上述浪费,实际编码时我们一般采用儿子-兄弟的表示方法:
  • 树的结构体中包含:一个存放结点元素的单元,一个指向第一个儿子的指针和一个指向第一个兄弟的指针。


  • 这样一来,我们表示一颗树,则只需要2n个存储单元来存储树的边,仅仅浪费n+1个存储单元

当我们把上述树进行旋转45度时,发现这就是一颗二叉树了,因此大部分的树都可以转化为二叉树的形式进行表示。综上所述,树的算法大多围绕二叉树进行

未完待续

相关文章

  • 树的简单理解

    树的理解性定义 树的用处 树的实现和二叉树 树的遍历 1、树的理解性定义 树是分组、层次结构: 分组树由树根和其余...

  • 简单理解红黑树

    红黑树作为一个高效的平衡二叉树实现,查找、插入和删除操作有着O(log n)的时间复杂度。然而作为一个学习样例,实...

  • 快速简单的理解决策树

    发现很多解释决策树的文章都讲的比较复杂,这里就分享下对决策树的理解,希望大家能快速简单的理解决策树这回事。 一.决...

  • [LeetCode] Maximum/Minimum Depth

    104. Maximum Depth of Binary Tree 这题很简单,只要理解树的深度 = max{ 左...

  • 决策树会有哪些特性?

    决策树(Decision Tree)是机器学习中最常见的算法, 因为决策树的结果简单,容易理解, 因此应用超级广泛...

  • 树的理解

    1.什么是树? 树解决的是一对多的问题,一般来说什么是一对多的问题呢,分类问题(分类问题某种意义上也概括了从属问题...

  • 分别基于顺序存储/链式存储设计一个二叉树(C语言)(数据结构学习

    什么是二叉树 我们了解了什么是树(一对多的逻辑结构),那么对于二叉树简单地理解,满足以下两个条件的树就是二叉树: ...

  • 二叉树--求解树的深度

    今天练习的算法是求解树的深度。 题目介绍 我们还是用这张老的二叉树来举例子吧: 求解树的深度比较好理解,简单来说就...

  • 13、红黑树的理解

    在理解红黑树之前,先看一些二叉查找树 一、二叉查找树 二叉查找树,也称二叉搜索树,或二叉排序树。其定义也比较简单,...

  • 彻底理解红黑树(二)之 插入

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的插入情况...

网友评论

    本文标题:树的简单理解

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