Java基础——二叉树

树 : N(N>0)个结点的有限集合。有且仅有一个根结点。

根结点:一棵树中没有父结点的结点。

叶子结点(终端结点):一棵树中没有子结点。

兄弟结点:同一个父结点的所有结点。

结点度(分支度):每一个所拥有结点的个数。

树的度(树的分支度):一棵树中最大的结点。

祖先:由某个结点X到根结点之路径上的所有结点,均为X结点的祖先。

 

二叉树(二次树或二分树):结点最多只有两个。

二叉树要满足的条件:①有且仅有称为根的结点。

                                ②其余结点分为两个互不相交的集合,称为左子树和右子树。

在二叉树中,第i层的结点总数不超过2^(i-1);

满二叉树:树中所有结点均在同一阶层而其他非终端结点度均为“2”,树的高度为K,其结点为2^K - 1;

完全二叉树:若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层有叶子结点,并且叶子结点都是从左到右依次排布。

    一棵树如果是满二叉树,那么它一定是完全二叉树,一棵树如果是完全二叉树,它不一定是满二叉树

    (小左大右)

二叉树的遍历:①先序:根 左 右 若二叉树非空,则访问根结点,按先序遍历左子树,再遍历右子树。

                     ②中序:左 根 右 若二叉树非空,按中序遍历左子树,再访问根结点,再按中序遍历右子树。

                     ③后序:左 右 根 若二叉树非空,按后序遍历左子树,再遍历右子树,再访问根结点。

 

二叉树的删除:①无左无右:分为: 根结点 非根结点,但是是叶子结点(分为:左叶子 右叶子)

                     ②有左无右:分为: 根结点 非根结点(分为:左结点 右结点)

                     ③有右无左:分为: 根结点 非根结点(分为:左结点 右结点)

                     ④有左有右:分为: 根结点 非根结点(分为:左结点 右结点)(判断是要上移左结点的最右边或右结点的最左边)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Darryl_Tang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值