【算法手记05】树与二叉树

本文详细介绍了树的基本概念,包括节点、根节点、子节点、父节点、叶子节点等,并着重讲解了二叉树(如满二叉树、完全二叉树、BST二叉搜索树和AVL平衡二叉树)的定义、性质和特点。
摘要由CSDN通过智能技术生成

树 Tree

定义

树是一种数据结构,它是由n(n≥0)个有限节点组成一个具有层次关系的集合。
把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。


术语

  • 节点(node):每一个元素称为一个节点
  • 根节点(root) :没有父节点的节点(从图像来看,就是往上没有任何节点了)。一棵树只能有一个根节点。
  • 子节点:一个节点的下一级节点。如图,B、C是A的子节点。
  • 父节点:一个节点的上一级节点。如图,B是D、E的父节点。
  • 叶子节点:没有子节点的节点。如图,H、E、F、G是叶子节点。
  • 节点的权:该节点存放的值。
  • 路径:从root节点到该节点的路线,可能不唯一。
  • 层:从根节点开始,根节点为第一层,根节点的子节点在第二层,以此类推。
  • 高度/深度:一棵树的最大层数。
  • 度:某节点拥有子节点的数量。叶子节点的度为0
  • 子树:子节点及其子节点构成的树,一个节点也是树。如图DH是节点B的子树,E也是B的子树。

  • 森林:由m(m>0)棵互不相交的树的集合称为森林;

二叉树 BiTree

定义

  1. 每个节点最多只能有2个节点的树称为二叉树。
  2. 二叉树的子节点分为左节点和右节点。

满二叉树

定义


一个二叉树,如果每一个层的节点数都达到最大值(也就是每个父节点都有2个子节点),则这个二叉树就是满二叉树。

性质

对于深度为 k k k的满二叉树,每层的节点数为 2 k − 1 2^{k-1} 2k1,满足首项为1、公比为2的等比数列。
由等比数列求和公式: S = a 1 ( 1 − q n ) 1 − q S=\frac{a_1(1-q^n)}{1-q} S=1qa1(1qn)
可以推导出满二叉树的节点总数为 2 k − 1 2^{k}-1 2k1.


完全二叉树

定义

一个深度为 k k k的二叉树,如果其 k − 1 k-1 k1层的节点是的, k k k层节点是左连续的(也就是说,最后一层从左边第一个节点到最后一个节点都是连续的,比如把图中的 0005 0005 0005节点去掉,就不算连续了。),那么就将这种二叉树称为完全二叉树

性质

  1. 满二叉树是完全二叉树的特殊情况;
  2. n个结点的完全二叉树的深度为: [ l o g 2 n ] + 1 [log_2n]+1 [log2n]+1([ ]表示向下取整)

BST 二叉搜索树

Binary Search Tree

  • 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  • 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  • 它的左、右子树也分别为二叉排序树
    image.png

AVL 平衡二叉树

平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

image.png

  • 36
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值