当前位置:   article > 正文

java二叉树的基本算法_java 数据结构与算法---二叉树

java 二叉树计算

原理来自百度百科 推荐数据演示网址 :https://www.cs.usfca.edu/~galles/visualization/BST.html

一、什么是二叉树

二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的(i-1)次方个结点;深度为k的二叉树至多有2的k次方然后减1个结点(次方不会敲所以用文字描述);对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。

dbe33084-59d6-4cd8-a7fd-8c36e285295d.png

二、二叉树的分类:

1、满二叉树:除叶子结点外的所有结点均有两个子结点。

67710afd-11f1-44a2-ba17-739555d7e669.png

满二叉树的性质:

一颗树深度为h,最大层数为k,深度与最大层数相同,k=h;

树的第k层,则该层的叶子节点个数为2k;

第k层的结点个数是2的(k-1)次方。

总结点个数是2的k次方减1,且总节点个数一定是奇数。

2、完全二叉树:若设二叉树的深度为h,除第 h 层外,其它各层 (1~(h-1)层) 的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。

4e4f5f14-26b1-43b6-8813-f3847477fcd6.png

完全二叉树的特点是:

1)只允许最后一层有空缺结点且空缺在右边,即叶子结点只能在层次最大的两层上出现;

2)对任一结点,如果其右子树的深度为j,则其左子树的深度必为j或j+1。 即度为1的点只有1个或0个。

满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。

三、二叉树在数据结构中的实现

二叉树在一般数据结构中是按照二叉排序树进行实现、使用的。二叉排序树(Binary Sort Tree):又称二叉查找树(Binary Search Tree),亦称二叉搜索树。

二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:

(1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;

(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;

(3)左、右子树也分别为二叉排序树;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/879031
推荐阅读
相关标签
  

闽ICP备14008679号