浅谈树、二叉树、满二叉树、完全二叉树、二叉搜索树、平衡二叉树、2-3树、红黑树等的概念

1、树

        概念:树(Tree)是n(n≧0)个结点的有限集;n=0时称为空树;在任意一颗非空树中:有且仅有一个特定的称为根的结点。当n>1时,其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一棵树,并且称为根的子树。

        常用术语:

  • 节点:树中的一个连接点
  • 父节点:若一个节点含有子节点,则这个节点成为其子节点的父节点
  • 子节点:一个节点含有的子树的根结点为改节点的子节点
  • 叶子结点:没有子节点的节点
  • 节点的权:节点的具体指
  • 节点的度:此节点拥有的子节点个数
  • 路径:从根节点到某个节点所走的路
  • 层:根结点是一层,其它节点的层依次加一
  • 子树:只要包含了一个结点,就得包含这个结点下的所有节点
  • 树的高度(深度):树的节点最大层数就是树的高度
  • 森林:多棵互不相交的树的集合称为森林

2、二叉树

        特点:每个节点最多只能有两个子节点的形式的树为二叉树;子节点分为左节点和右节点

        

 3、满二叉树

        特点:所有非叶子结点都有左子树和右子树,且所有叶子结点都在最后一层的二叉树为满二叉树;非叶子结点的度一定是二;同样深度的二叉树中,满二叉树的节点个数最多,叶子数最多

        

 4、完全二叉树

        特点:如果该二叉树的所有叶子节点都在最后一层或倒数第二层,且最后一层的叶子结点在左边连续(从左往右没有空),倒数第二层的叶子结点在右边连续(从右往左没有空),为完全二叉树

        层数为N的完全二叉树,节点总数=2的(N-1)次方

        如果节点的度为1,则该节点只有左子树

        同样节点数目的二叉树,完全二叉树深度最小

        满二叉树一定是完全二叉树,反之则不一定

        

 5、二叉搜索树   BST(Binary Search Tree)

        特点:二叉搜索树也叫二叉排序树,任何一个非叶子结点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大,有相同的值,左右都可

        

二叉树的深度遍历分为:前序遍历、中序遍历、后序遍历

前序遍历:先输出父节点,再遍历左子树和右子树;上图结果为(7,3,1,5,10,9,12)

中序遍历:先遍历左子树,再输出父节点,再遍历右子树,中序遍历的结果有序;上图结果为(1,3,5,7,9,10,12)

后序遍历:先遍历左子树,再遍历右子树,最后输出父节点;上图结果为(1,5,3,9,12,10,7)

存在的问题:

        根据数据(1,2,3,4,5,6)创建一颗BST为:

        

左子树全部为空,从形式上看,更像一个单链表,插入速度没有影响,查询速度明显降低,解决方案为平衡二叉树

6、平衡二叉搜索树(AVL)

        特点:需满足BST的特征;任意一个节点,平衡因子的绝对值不超过1

       某节点的高度值=max(左子树高度,右子树高度)+1

        每个节点的左子树和右子树的高度差是平衡因子

        高度和节点数的关系时0(log n)

                

7、2-3树

        特点:每个节点都可存放一个元素或者两个元素,存放一个元素的节点称为二节点,存放两个元素的节点称为三节点,每个节点有2个或3个子节点,满足二叉搜索树的基本性质,且是一个绝对平衡的树

        

 2-3树添加节点遵循三个大的前提:

        满足二叉搜索树的特征

        维持绝对平衡

        不能往null节点插入数据        

8、红黑树

  • 红黑树的叶子结点指的是最后的空节点(原来理解的叶子结点的孩子节点)
  • 每个节点都是有颜色的,或是红色或是黑色
  • 根结点是黑色的
  • 每个叶子结点都是黑色的(红色节点向左倾斜叫做左倾红黑树)
  • 如果一个节点是红色的,那么它的孩子节点都是黑色的
  • 从任何一个节点到叶子节点,经过的黑色节点是一样的        

        

 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值