用数组实现的二叉树(C++实现)

本文所用方法同样适用于完全二叉树的构建

目录

前言

一、前置知识

深度为k的二叉树至多有个节点

具有n个节点的完全二叉树的深度为

关于左右孩子和双亲节点的推导

二、代码时间

1.前期准备

2.函数部分

构造空二叉树

查询树的深度

返回某位置结点的值

对某位置结点赋值

查询非根结点的双亲

逐层,按本层序号输出二叉树

其他


前言

刚学没多久,怕忘了,就贴在这了


一、前置知识

###如不了解满二叉树/完全二叉树请移步其他文章,本文略过不表###

###本文编号均按本树在同深度的满二叉树上的编号进行标记###

  • 深度为k的二叉树至多有2^{k}-1个节点

        (深度为k就是指有k层的二叉树)

         其实这个值就是深度为k的满二叉树的结点数,注意不是完全二叉树,他们并不一样。

  • 具有n个节点的完全二叉树的深度为\left \lfloor \log_{2}n\right \rfloor+1

        \left \lfloor X\right \rfloor的意思是向下取不大于x的最大整数

        其实满二叉树就是一种特殊的完全二叉树,特殊就在于满二叉树所有的叶子节点都在同一层,因此是“满”的。前文已经提到满二叉树的节点是2^{k}-1,那么倒推一下k的值,可以得到k=\left \lfloor \log_{2}n\right \rfloor+1

  • 关于左右孩子和双亲节点的推导

        对于一颗有n个结点的完全二叉树(深度为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值