完全二叉树,知道总节点数,计算叶子结点的数量
2013-07-26 10:13
239 查看
昨天面试,有一道题是:完全二叉树,知道总节点数,计算叶子结点的数量。由于当时要求在纸上写代码,没有实际运行,所以回来后他这个代码调试一下.
// Challenge8.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "math.h" //问题:完全二叉树知道总节点数, 求叶子节点的数量 //求某层节点个个数 int levelnode(int deep) { int sum = 1; for(int i = 0; i < deep; i++) { sum *= 2; } return sum; } //计算叶子节点的数量 int leafnode(int allnode) { int deep = 0; while (allnode > 0) { allnode -= levelnode(deep); deep++; } int leaf = levelnode(deep - 1) + allnode; return leaf; } int _tmain(int argc, _TCHAR* argv[]) { printf("leafnode=%d\n", leafnode(17)); getchar(); return 0; }
相关文章推荐
- 完全二叉树计算叶子结点数
- 计算安卓手机图形解锁中结点的数量!
- 二叉树节点推导既二度节点和叶子节点的数量关系
- C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法
- 题目:已知一个完全二叉树的结点数为770,问完全二叉树的叶子结点数为多少?
- 医院管理系统(实现功能:浏览医院的整体结构,给定任意节点输出该节点信息就子节点信息,计算在给出点之间的“病房的数量”)
- 计算二叉树中叶子节点的数目
- 二叉树二度节点和叶子节点的数量关系
- 二叉树叶子节点个数的计算
- 二叉树叶子节点个数计算 -- 采用递归和非递归方法实现
- 数据结构——二叉树遍历、深度、叶子节点数计算
- (二叉搜索树10.1.2)POJ 1577 Falling Leaves(根据删除叶子节点的顺序输出计算一颗二叉树的前序遍历序列)
- poj2309 计算完全二叉树中最大节点和最小节点值
- SICP 2.35 树叶子节点的数量
- 《数据结构》问题回答:why100个结点的完全二叉树叶子数为50.
- 怎么计算一棵完全二叉树的节点个数
- m叉树的叶子节点数量
- 计算二叉树叶子节点的数目
- 基本数据结构——二叉树的建立,遍历,求叶子节点,深度计算
- 二叉树的建立、遍历、叶子节点计数、深度计算