树-基础

基本概念

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

基本特点

  • 每个节点有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树
      一种对读写操作进行优化的自平衡的二叉查找树,能够保持数据有序,拥有多余两个子树

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 4,489评论 1 31
  • 基于树实现的数据结构,具有两个核心特征: 逻辑结构:数据元素之间具有层次关系; 数据运算:操作方法具有Log级的平...
    yhthu阅读 4,320评论 1 5
  • 树的定义 树是n(n>=0)个元素的的有限集合。在任何一颗非空树中: 有且仅有一个节点被称为根节点,在整棵树最上面...
    随时学丫阅读 1,306评论 0 0
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,172评论 0 12
  • 我想和你虚度时光 李元胜 我想和你虚度时光,比如低头看鱼 比如把茶杯留在桌子上,离开 浪费它们好看的阴影 我还想连...
    罗小生阅读 172评论 0 0