二叉树基础

                 

https://www.bilibili.com/video/BV1Hy4y1t7ij/?spm_id_from=333.337.search-card.all.click&vd_source=168d5f618ec1a68e1f162d91a35a12b6

完全二叉树的底部一定是从左到右是连续的。满二叉树一定是完全二叉树。

二叉搜索树:左边左子树的所有节点都小于这个中间节点,右边右子树的所有节点都大于中间节点。

--搜索一个节点的时间复杂度是logN级别的

平衡二叉搜索树示例:下面是一个平衡二叉搜索树

二叉树的遍历,其实是图论里面的两大类搜索方式,深度和广度优先搜索。深度优先搜索有前、中、后序遍历。广度优先搜索里边是层序遍历。

深度优先搜索,一般用递归的方式来实现。前/中/后序遍历都是深度优先搜索,都是通过递归方式实现。(也可用迭代法实现前中后序遍历)

广度优先搜索,一层一层或一圈一圈的去遍历。常见方式是层序遍历。二叉树的层序遍历是广度优先搜索的一种。层序遍历就是迭代法,层序遍历就是用一个队列来实现对二叉树一层一层的搜索。在图论里广度优先搜索也是使用队列,因为队列的先进先出的特点符合我们一层一层遍历的需求。

二叉树存储方式,链式存储和线性存储(如用数组存储)。

--编程语言在实现递归的过程中,是用栈的这种结构来实现。

基础部分:

https://www.bilibili.com/video/BV1s54y1U7V3/?spm_id_from=333.337.search-card.all.click&vd_source=168d5f618ec1a68e1f162d91a35a12b6

节(结)点的度,节点所引出的分支的个数

树的度,树中所有节点的最大分支数

叶子节点,度为0的节点称为叶子节点。

双亲和孩子

树的存储结构

二叉树定义

满二叉树(可看成完全二叉树的一种),除了最底层节点外,所有节点都有左右孩子

完全二叉树,可理解成由满二叉树,从右到左,依次删除最底层的节点。(满二叉树一定是完全二叉树。)

推导:

高度有两种取值策略

向上取整

向下取整

推导推广

完全二叉树,左右孩子节点位置推算

引出不同的遍历次序(前中后序遍历,针对二叉树)

对于树,没有中序遍历说法,只有前后序遍历

树和该树转换后的“二叉树”的一些遍历结论:

树和转换后的“二叉树”的先序遍历的节点访问顺序是一样,若要对树进行先序遍历,可对转换后的“二叉树”进行先序遍历即可。

树的后序遍历等效于转换后的“二叉树”的中序遍历

二叉树遍历的整体框架(1,2,3处表在不同位置代入visit(p)代码),该图想表明二叉树遍历可用递归来做

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值