美文网首页
树-基础

树-基础

作者: OkCoco | 来源:发表于2017-12-06 18:04 被阅读0次

基本概念

树是一系列点组成的、具有层次结构的集合。

基本特点

  • 每个节点有0或多个子节点
  • 没有父节点的节点称为根节点(root)
  • 每个非根节点有且仅有一个子节点
  • 除了根节点,每个子节点可以分为多个不相交的子树

特定术语

  • 节点的度:节点所含的子树个数(A-->3)
  • 树的度:一棵树中,最大的节点的度(A-->3)
  • 叶节点:子节点为0的节点(E、F、G、H、I、J)
  • 兄弟节点:具有相同父节点的节点(BCD、EF、GH、IJ)
  • 节点层次:从根节点开始,根为第一层,根节点的子节点为第二层,以此类推
  • 深度:对于节点n,从根节点到n的唯一路径长(C-->1)
  • 高度:对于节点n,从n到树叶节点的最长路径(A-->2)
  • 森林:有n(n>0)棵互不相交的树组成的集合
image.png

树的分类

1、无序树

  任意节点的子节点间是没有顺序的,也称自由树

2、有序树

  任意节点的子节点间是存在顺序的

二叉树

  每个节点中最多含有2个子节点的树称为二叉树。

2.1、完全二叉树

  假设一棵树的深度为n(n>1),除了第n层以为,其余层数的节点数已达最大值,且若第n层有节点,则节点是从左到右依次排序的。

2.2、满二叉树

   所有叶节点都在最底层的完全二叉树

2.3、平衡二叉树(AVL树)

   当且仅当任何节点的两棵子树的高度差不大于2的二叉树

2.4、二叉查找树

   具有以下特性的二叉树:
   1.若任一节点的左子树不为空,则左子树上所有节点的值均小于它的根节点的值
   2.若任一节点的右子树不为空,则左子树上所有节点的值均大于它的根节点的值
   3.若任一节点的子树也分别是二叉查找树
   4.不存在键值相等的节点

2.4、红黑树

  一种自平衡二叉树,典型的用途的实现关联数组。

  • 哈夫曼树
      带权路径最短的二叉树称为哈夫曼树或最优二叉树;

  • B树
      一种对读写操作进行优化的自平衡的二叉查找树,能够保持数据有序,拥有多余两个子树

相关文章

  • 树-基础

    基本概念 树是一系列点组成的、具有层次结构的集合。 基本特点 每个节点有0或多个子节点 没有父节点的节点称为根节点...

  • LeetCode基础算法-树

    LeetCode基础算法-树 LeetCode 树 基础算法 1. 二叉树的最大深度 给定一个二叉树,找出其最大深...

  • 二叉树系列之初探

    声明,本文不涉及基础的树知识,主要详解的是二叉树相关的基础知识,为后续了解指定树的结构时奠定基础知识。 什么是二叉...

  • 第五章

    mysql b+树索引基础 作者在索引基础讲了一些废话,关于索引的基础,看下图足以。 b+树索引作者列举的一些信...

  • 以太坊详解 之 Merkle Patricia Tree

    基础知识 Trie树 Trie是一种搜索树,又称字典树(digital tree)和前缀树(prefix tree...

  • Android技能树 — Fragment总体小结

    前言: Android基础知识 Android技能树 — Fragment总体小结 Android技能树 — 动画...

  • 剑指offer之(树)

    树 写这个文章的目的是为了记录,好背。 树的遍历和树的深度是基础,很多题都是在遍历的基础上加些限制条件,下边题目的...

  • Android技能树 — Rxjava取消订阅小结(2):RxL

    前言: Android技能树系列: Android基础知识 Android技能树 — 动画小结 Android技能...

  • Android技能树 — 屏幕适配小结

    前言: Android技能树系列: Android基础知识 Android技能树 — 动画小结 Android技能...

  • Android技能树 — Rxjava取消订阅小结(1):自带方

    前言: Android技能树系列: Android基础知识 Android技能树 — 动画小结 Android技能...

网友评论

      本文标题:树-基础

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