【***二叉树***】

目录

 二叉树的相关概念

二叉树的种类

二叉树的存储方式

二叉树数据结构定义

 二叉树的遍历

 

 二叉树的相关概念

二叉树的种类

满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。

 深度为k,节点数为2^k  -1

完全二叉树

在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 k 层,则该层包含 1~ 2^(k-1)  个节点

 二叉搜索树

 它的左右子树也是如此

平衡二叉搜索树AVL

它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

C++中map,set,multimap,multiset的底层实现为平衡二叉搜索树

unordered系列的底层实现是哈希表

二叉树的存储方式

链式存储

顺序存储

父节点是i,那么左孩子是i*2+1,右孩子是i*2+2

二叉树数据结构定义

 二叉树的遍历

递归

前序遍历:

 另外两个遍历只需要调整一下打印或者放入数组这条语句的位置!

递归较简单,迭代怎么实现前中后序遍历呢?

递归的实质是:每一次递归,会把当前各种信息压入栈中

递归返回时,弹出,返回上一层

因此我们可以用栈来实现!

 对于前序遍历,访问顺序和处理顺序是一致的,所以代码较为简洁

但中序遍历不行

 后序遍历仅需要在前序遍历的基础上做些修改

 接下来是利用队列实现的二叉树层序遍历

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值