首页 新闻 会员 周边

关于二叉树的深度

0
悬赏园豆:10 [已关闭问题] 关闭于 2011-10-11 15:34

int BTreeDepth(BTreeNode * BT) 
  //求由BT指针指向的一棵二叉树的深度 

  if(BT==NULL) 
  return 0; //对于空树,返回0并结束递归。 
  else 
  { 
  //计算左子树的深度 
  int dep1=BTreeDepth(BT->left);  (*)
  //计算右子树的深度 
  int dep2=BTreeDepth(BT->right);  (**)
  //返回树的深度 
  if(dep1>dep2)  (***)
  return dep1+1; 
  else dep2+1; 
  } 
}

我的疑问:在运行到(*)式的时候,递归,重新进入程序,直到左子树为空,然后往下运行,运行到(**)式时是一样的过程,那么如何记下dep1,dep2的值呢?或者说是在哪里dep1,dep2的值发生变化的呢?

lzjnhs的主页 lzjnhs | 初学一级 | 园豆:60
提问于:2011-04-07 14:54
< >
分享
所有回答(1)
0

额,函数的递归调用你都看不懂,去看什么二叉树呀。还不如老老实实地学习c++的递归,如汉诺塔

水人 | 园豆:210 (菜鸟二级) | 2011-04-07 22:28
你看的懂么?那你用语言描述一遍吧
支持(0) 反对(0) lzjnhs | 园豆:60 (初学一级) | 2011-04-23 11:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册