有关树的知识点

0、二叉树可以为空树

1、n0 = n2 + 1

    二叉树中满足上式,其中n0表示度为0的即叶节点的个数,n2表示度为2的节点个数

2、树转化为二叉树的步骤:

    (1) 将节点的所有兄弟节点用横线连接起来

    (2) 除最左子节点的连接外,删掉每个节点所有与子节点间的连接

    (3) 将树顺时针旋转45°,即得到二叉树

    从二叉树还原树逆序执行上面步骤即可

3、线索二叉树的优缺点:

    定义:对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域,利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的指针,这些指针称为线索,加上线索的二叉树称为线索二叉树。这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树后序线索二叉树三种。

    优点:进行中序遍历时,不需要使用堆栈和递归处理,但一般二叉树需要;

              由于充分使用空链接,所以避免了链接闲置浪费的情况,而且使得中序遍历的速度更快;

              任一个节点都容易找出它的中序先行者和中序后继者。

    缺点: 由于链接设置变多,导致加入和删除节点时的速度比一般二叉树慢;

               线索链表解决了无法直接找到该结点在某种遍历序列中的前趋和后继结点的问题,但出现了二叉链表找左、右孩子困难的问题。

                线索子树间不能共用。

4、平衡树,又称为AVL(由Adelson-Velskii和Landis发明的)树,它本身也是一棵二叉查找树。它或者是一颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左右子树的深度之差的绝对值不超过1。

5、B树,又叫多路平衡查找树,是一种高度大于等于1的m阶查找树,它也是一种平衡树概念的延伸。它有如下特点:

        每一个节点都是m阶节点;

        每一个m阶节点存放的键值最多为m-1个;

        每一个m阶节点度数均小于等于m;

        除非是空树,否则树根节点至少必须有两个以上的子节点;

        除了树根和树叶节点外,每一个节点最多不超过m个子节点,但至少包含m/2(>= m/2)个子节点;

        所有的树叶节点都在同一层;

       详情参考:http://blog.csdn.net/v_JULY_v/article/details/6530142/

       大规模数据存储中,实现索引查询这样一个实际背景下,树节点存储的元素数量是有限的(如果元素数量非常多的话,查找就退化成节点内部的线性查找了),这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下(为什么会出现这种情况,待会在外部存储器-磁盘中有所解释),那么如何减少树的深度(当然是不能减少查询的数据量),一个基本的想法就是:采用多叉树结构(由于树节点元素数量是有限的,自然该节点的子树数量也就是有限的)。

       B树的各种操作能使B树保持较低的高度,从而达到有效避免磁盘过于频繁的查找存取操作,从而有效提高查找效率

6、二叉树的三种遍历使用了递归。深度和广度优先遍历也都使用了递归,但另外,树(乃至图)的深度优先遍历使用堆栈,广度优先遍历则使用了队列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值