求二叉树高度
test4-5
#include"BiTree.h"
//求二叉树的高度
int BiTreeDepth(BTNode* T)
{
int ldep = 0;
int rdep = 0;
if (T == NULL)
{
return 0;//空树的高度为0
}
if (T->lchild)//如果左子树不为空则继续递归
{
ldep=BiTreeDepth(T->lchild);
}
else
{
ldep = 0;
}
if (T->rchild)//如果右子树不为空则继续递归
{
rdep=BiTreeDepth(T->rchild);
}
else
{
rdep = 0;
}
return (ldep > rdep) ? (ldep + 1) : (rdep + 1);
}
int main(int argc, char* argv[])
{
BTNode* T;
InitBiTree(T);
char str[] = "1(2,3(4(6),5))";
CreateBiTree(T, str);
printf("二叉树的高度为%d\n",BiTreeDepth(T));
DestroyBiTree(T);
return 0;
}