cityengine导入dae文件怎么导入lumion

如何求二叉树深度的递归算法是什么?
如何求二叉树深度的递归算法是什么?
09-03-12 &
首先你要清楚Bitree的数据结构 左分支T-&lchild 和右分支T-&rchild 同时叶子节点也有2个分支 都为null好了 现在我们分析一下这个函数 当所给的参数T是null时,返回0 说明这个树只有一个叶子节点 深度为0 当所给的参数不是null时 函数调用自己看看这个参数的左分支是不是null 如果不是继续调用自己看看左分支的左分支是不是null 直到最后一个的左分支是null 然后看与最后一个左分支并列的右分支是不是null 不是的话自动调用自己 直到是null 然后u(左分支深度)和v(右分支深度)比较 返回 值大的作为深度第一次到null返回的值为0 然后调用这个函数的上一层函数就得到一个返回值0 比如u=0假设此时v也=0 那么这个上一层函数就会判断(0&0) 然后运行v+1(因为0不大于0所以运行的是v+1) 向他的上一层返回1 以此类推 就返回了树的深度
请登录后再发表评论!
首先你要清楚Bitree的数据结构 左分支T-&lchild 和右分支T-&rchild 同时叶子节点也有2个分支 都为null 好了 现在我们分析一下这个函数 当所给的参数T是null时,返回0 说明这个树只有一个叶子节点 深度为0 当所给的参数不是null时 函数调用自己看看这个参数的左分支是不是null 如果不是继续调用自己看看左分支的左分支是不是null 直到最后一个的左分支是null 然后看与最后一个左分支并列的右分支是不是null 不是的话自动调用自己 直到是null 然后u(左分支深度)和v(右分支深度)比较 返回 值大的作为深度 第一次到null返回的值为0 然后调用这个函数的上一层函数就得到一个返回值0 比如u=0假设此时v也=0 那么这个上一层函数就会判断(0&0) 然后运行v+1(因为0不大于0所以运行的是v+1) 向他的上一层返回1 以此类推 就返回了树的深度
请登录后再发表评论!试编写计算二叉树深度、所有结点总数、叶子结点数、双孩子结点个数、单孩子结点个数的算法
一点分都不该
看来你不急啊
我的分都浪费完了啊
老师催着叫实验报告啊 老师也不帮忙改 自己改不了啊!
typedef struct bnode{
struct bnode*
struct bnode*
#define MAX(a,b) ((a)>(b)?(a):(b))
int bt_depth(btree*T)
if(T==NULL)
return MAX( bt_depth(T->lchild),bt_depth(T->rchild) )+1;
int bt_ncount(btree*T)
if(T==NULL)
else return bt_ncount(T->lchild)+bt_ncount(T->rchild)+1;
int bt_leafcount(NULL)
if(T==NULL)
else if( !T->lchild
&& !T->rchild)
else return bt_leafcount(T->lchild)+bt_leafcount(T->rchild);
int bt_2kids_parent_count(btree*T)
if(T==NULL)
return 0;
else if (T->lchild &&T->rchild)
return bt_2kids_parent_count(T->lchild)+bt_2kids_parent_count(T->rchild)+1;
return bt_2kids_parent_count(T->lchild)+bt_2kids_parent_count(T->rchild);
int bt_kid_parent_count(btree*T)
if(T==NULL)
return 0;
else if (T->lchild && !T->rchild)
return bt_kid_parent_count(T->lchild)+1;
else if(!T->lchild&& T->rchild)
return bt_kid_parent_count(T->rchild)+1;
return bt_kid_parent_count(T->lchild)+bt_kid_parent_count(T->rchild);
为您推荐:
其他类似问题
扫描下载二维码求解具有n个结点的完全二叉树的深度,写出计算过程
国安双冠257
具有n个结点的完全二叉树的深度为「log2n」+1 !二叉树的计算方法:若一棵二叉树为空,则其深度为0,否则其深度等于左子树和右子树的最大深度加1,即有如下递归模型:depth(b)=0 /*如果b=NULL*/ depth(b)=max(depth(b->left,b->right)+1 /*其它*/ 因此求二叉树深度的递归函数如下:int depth(btree *b) { int dep1,dep2; if(b==NULL)return(0); else { dep1=depth(b->left); dep2=depth(b->right); if(dep1>dep2)return(dep1+1); else return(dep2+1); } } 二叉树的基本性质 ★树的基本定义 1、树是n(n>=0)个结点的有限集 2、树的结点包含一个数据元素及若干指向其子树的分支 3、结点拥有的子树数称为结点的度 4、度为0的结点称为叶子或终端结点 5、树的度是树内各结点的度的最大值 6、结点的层次从根开始定义起,根为第一层,根的孩子为第二层 7、树中结点的最大层次称为树的深度或高度 8、如果将树中结点的各子树看成从左至右是有次序的(即不能互换),则称该树为有序树,否则称为无序树.在有序树中,最左边的子树的根称为第一个孩子,最右边的称为最后一个孩子.★二叉树的定义 二叉树是一种树型结构,它的特点是每个结点至多只有二棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒.★二叉树的性质 性质一 在二叉树的第i层上至多有2i-1个结点 性质二 深度为k的二叉树至多有2k-1个结点(k>=1) 性质三 对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1 性质四 具有n个结点的完全二叉树的深度为「log2n」+1 性质五 如果对一棵有n个结点的完全二叉树(其深度为「log2n」+1)的结点按层序编号(从第1层到第「log2n」+1层,每层从左到右),则对任一结点i(1≤i≤n),有 ①如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲PARENT(i)是结点「i/2」 ②如果2i>n,则结点n无左孩子(结点i为叶子结点);否则其左孩子LCHILD(i)是结点2i ③如果2i+1>n,则结点i无右孩子,否则其右孩子RCHILD(i)是结点2i+1 ★先序遍历二叉树的操作定义 若二叉树为空,则空操作,否则 (1)访问根结点 (2)先序遍历左子树 (3)先序遍历右子树 ★中序遍历二叉树的操作定义 若二叉树为空,则空操作,否则 (1)中序遍历左子树 (2)访问根结点 (3)中序遍历右子树 ★后序遍历二叉树的操作定义 若二叉树为空,则空操作,否则 (1)后序遍历左子树 (2)后序遍历右子树 (3)访问根结点
为您推荐:
其他类似问题
扫描下载二维码求改正算法今天写了一个“统计二叉树中度为0的结点个数”的算法,不知道正确不,求大侠真正并修改,多谢了Int ZeroDegree(Btree T){ &
Int lcount, &
return 0; &
ZeroDgree(T-&lchild); &
If(!T-&lchild && !T-&rchild) &
lcount++; &
ZeroDegree(T-&rchild); &
If(!T-&lchild && !T-&rchild) &
rcount++; &
Return lcount+}
回答1:感觉楼主写的有点乱,个人比较喜欢:int count=0;void ZeroDegree(Btree T){
if(T&&(!T-&lchild)&&(!T-&rchild)&&(++i))
ZeroDegree(T-&rchild);
ZeroDegree(T-&lchild);
}}先选择遍历树的右节点,是因为上面的if条件中先T-&lchild,所以这样写会再左节点为空时减少点调用
回答2:int ZeroDegree(Btree T){
if (NULL == T)
int count = ZeroDgree(T-&lchild) + ZeroDegree(T-&rchild);
if (0 == count)
count = 1;
song3232029
回答3:  C/C++ code  int ZeroDegree(Btree T)
if(0 == T)
if((0 == T-&lchild)&&(0 == T-&rchild))
return ZeroDgree(T-&lchild)+ZeroDegree(T-&rchild);
song3927boy
回答4:探讨今天写了一个“统计二叉树中度为0的结点个数”的算法,不知道正确不,求大侠真正并修改,多谢了Int ZeroDegree(Btree T){
Int lcount,
If(!T) return 0;
ZeroDgree(T-&lchild);
If(!T-&lchild && !T-&rchild)
song308333

我要回帖

更多关于 max文件导入lumion 的文章

 

随机推荐