怎样如何判断树苗死活1株树的死活

21174人阅读
Algorithm(15)
严蔚敏那本教材上的说法:一个深度为k,节点个数为 2^k - 1 的二叉树为满二叉树。这个概念很好理解,
就是一棵树,深度为k,并且没有空位。
首先对满二叉树按照广度优先遍历(从左到右)的顺序进行编号。
一颗深度为k二叉树,有n个节点,然后,也对这棵树进行编号,如果所有的编号都和满二叉树对应,那么这棵树是完全二叉树。
任意的一个二叉树,都可以补成一个满二叉树。这样中间就会有很多空洞。在广度优先遍历的时候,如果是满二叉树,或者完全二叉树,这些空洞是在广度优先的遍历的末尾,所以,但我们遍历到空洞的时候,整个二叉树就已经遍历完成了。而如果,是非完全二叉树,
我们遍历到空洞的时候,就会发现,空洞后面还有没有遍历到的值。这样,只要根据是否遍历到空洞,整个树的遍历是否结束来判断是否是完全的二叉树。
算法如下:
bool is_complete(tree *root)
// 进行广度优先遍历(层次遍历),并把NULL节点也放入队列
q.push(root);
while ((ptr = q.pop()) != NULL)
q.push(ptr-&left);
q.push(ptr-&right);
// 判断是否还有未被访问到的节点
while (!q.is_empty())
ptr = q.pop();
// 有未访问到的的非NULL节点,则树存在空洞,为非完全二叉树
if (NULL != ptr)
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:152600次
积分:1723
积分:1723
排名:千里之外
原创:29篇
转载:27篇
评论:44条
(3)(1)(1)(1)(16)(2)(5)(2)(1)(7)(3)(3)(1)(1)(2)(1)(1)(3)(1)(1)怎么才能判断一棵树的年龄?
全部***(共1个回答)
树都是有年龄的,但是,从外表去看,很难判断一棵树到底有多大年龄。那么,用什么方法来判断树木的年龄呢?
每棵树都有年轮,如果想要知道一棵树的年龄,只要看它的...
看树的年龄和看人的年龄一样,要有经验.一般是根据不同的树种,不同的肥水条件,不同的管理水平而确定的.一般快长的树种和慢长的树种不同.肥水条件好的和肥水条件差的不...
要想搞清树的年龄,除了砍掉树及钻取木芯后数年轮外,其他无好的方法;但有的有文字记载的可查寻,没有文字记载的只好凭经验估算了。
首先要确定当年是农历什么年。一般只看后面的那个字,因为生肖属相是据此来决定的,他是按|子鼠、丑牛、寅虎、卯兔、辰龙、巳舍、午马、未羊、申猴、酉鸡、戌狗、亥猪的顺...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区

参考资料

 

随机推荐