二叉树的深度:
递归法:为了求得树的深度,可以先求左右子树的深度,取二者较大者加1即是树的深度,递归返回的条件是若节点为空,返回0。
二叉树的宽度:
每层结点总数的最大值。
//求二叉树的深度及宽度
#include <iostream>
#include <queue>
using namespace std;
struct BinaryTreeNode
{
char value;
BinaryTreeNode *left;
BinaryTreeNode *right;
};
//新建二叉树
void CreatTree(BinaryTreeNode *root)
{
char ch=0;
cin>>ch;
if('#'==ch)
return;
else
{
//新建一个结点
root=new BinaryTreeNode();
root->value=ch;
CreatTree(root->left);
CreatTree(root->right);
}
}
//递归法求树深
int TreeDepth(BinaryTreeNode *root)
{