java基础复习——二叉树以及代码实现

说到二叉树,那都是很久以前学的了。。。 最近听到之前的一个同事说,有人说他基础很好,可以写出二叉树等数据结构的实现,这。。。虽然在很多人看来并没有什么,但是。。。我TM对二叉树完全没印象了,突然觉得自己好菜啊~~~

所以痛下决心,需要复习一下基础知识了~~~ 那么就先从这个二叉树开始吧。

所谓的二叉树,它是一种数据结构,同时具有数组和链表各自的特点:它可以像数组一样快速查找,也可以像链表一样快速添加。缺点就是:删除操作复杂。

二叉树::每个结点最多有两个子树的有序树。在使用二叉树的时候,数据并不是随便插入到节点中的:“一个节点的左子节点的关键值必须小于此节点,右子节点的关键值必须大于或者是等于此节点”,所以又称二叉查找树、二叉排序树、二叉搜索树。

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

满二叉树:除叶结点外的每一个结点都有左右子叶节点,且树的叶子结点都处在最底层。

特点:

  1. 执行查找、删除、插入的时间复杂度都是O(logN)
  2. 遍历二叉树的方法包括前序、中序、后序
  3. 在非空二叉树中,第i层的结点总数不超过这里写图片描述 , i>=1;
  4. 深度为h的二叉树最多有个结点这里写图片描述(h>=1),最少有h个结点
  5. 对于任意一棵二叉树,如果其叶结点数为这里写图片描述,而度数为2的结点总数为这里写图片描述,则
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值