早教吧 育儿知识 作业答案 考试题库 百科 知识分享

已知一棵二叉树是以二叉链表的形式存储的,其结点结构说明如下:structnode{intdata;structnode*已知一棵二叉树是以二叉链表的形式存储的,其结点结构说明如下:structnode{intdata;structnod

题目详情
已知一棵二叉树是以二叉链表的形式存储的,其结点结构说明如下: struct node { int data; struct node *
已知一棵二叉树是以二叉链表的形式存储的,其结点结构说明如下:
struct node
{
int data;
struct node * left;
struct node * right;
};
要求写出2个具有下面功能的算法:
①、求出以T为根的子树的结点个数。
②、求出以T为根的子树的高度。
▼优质解答
答案和解析
#include
#include
/*①、求出以T为根的子树的结点个数。
②、求出以T为根的子树的高度。*/
typedef struct node
{
int data;
struct node * left;
struct node * right;
}BiTNode,*BiTree;
/*①、求出以T为根的子树的结点个数。*/
void CountLeaf (BiTree T, int& count)
{ //递归方法,
if ( T )
{
if ((!T->lchild)&& (!T->rchild))
count++;
CountLeaf( T->lchild, count); // 统计左子树中叶子结点个数
CountLeaf( T->rchild, count); // 统计右子树中叶子结点个数
}
}
/*②、求出以T为根的子树的高度。*/
int Depth(BinTree *T)
{
int dep1,dep2;
if(T==Null) return(0);
else
{
dep1=Depth(T->lchild);
dep2=Depth(T->rchild);
return dep1 > dep2 ? dep1 +1 : dep2 + 1;
}
看了 已知一棵二叉树是以二叉链表的...的网友还看了以下: