#两颗二叉树比较深度,没有反应,建立一颗二叉树求深度是可以的,俩可不知道为什么就错了,希望大佬可以帮忙看看啊!!!
#include <iostream>
using namespace std;
struct BiNode
{
char data;
BiNode* lchild, * rchild;
};
class BiTree
{
private:
BiNode* creat(BiNode* bt);
int depth(BiNode* bt);
void relase(BiNode* bt);
BiNode* root;
public:
BiTree() { root = creat(root); }
~BiTree() { relase(root); };
int depth(){return depth(root);}
};
BiNode* BiTree::creat(BiNode* bt)
{
char ch;
ch = getchar();
if (ch == '#')
{
bt = NULL;
}
else
{
bt = new BiNode;
bt->data = ch;
bt->lchild = creat(bt->lchild);
bt->rchild = creat(bt->rchild);
}
return bt;
}
void BiTree::relase(BiNode* bt)
{
if (bt)
{
relase(bt->lchild);
relase(bt->rchild);
delete(bt);
}
}
int BiTree::depth(BiNode* bt)
{
int deep = 0;
if(bt)
{
int lchilddeep = depth(bt->lchild);
int rchilddeep = depth(bt->rchild);
deep = lchilddeep>=rchilddeep?lchilddeep+1:rchilddeep+1;
}
return deep;
}
int main()
{
BiTree t1,t2;
int max;
max=t1.depth()>t2.depth()?t1.depth():t2.depth();
cout<<max<<endl;
return 0;
}