數(shù)據(jù)結(jié)構(gòu)拓展習(xí)題:正則二叉樹
2022-05-27 21:35 作者:回到唐朝當(dāng)少爺 | 我要投稿
題目:試證明:正則二叉樹(每個非葉子結(jié)點都有左子樹和右子樹,正則二叉樹)只有奇數(shù)個結(jié)點,偶數(shù)條邊。設(shè)計算法,判定一棵二叉樹是否為正則二叉樹。


typedef char TElemType;
typedef struct BiTNode
{
?????? TElemType data;
?????? struct BiTNode* lchild, * rchild;
}BiTNode, * BiTree;
?
bool IsRegularTree(BiTree T)
{
?????? if (T == NULL)//如果T為空樹,則其為正則二叉樹
????????????? return TRUE;
?????? else if (T->lchild == NULL && T->rchild == NULL)//如果左右節(jié)點都空也是
????????????? return TRUE;
?????? else if (T->lchild != NULL && T->rchild != NULL)//如果左右節(jié)點均不空
????????????? if (IsRegularTree(T->lchild)&& IsRegularTree(T->rchild))//判斷其左右子樹是否為正則二叉樹
???????????????????? return TRUE;
????????????? else
???????????????????? return FALSE;
?????? else//如果一顆子樹非空另一顆空則不是正則二叉樹
????????????? return FALSE;
}
標(biāo)簽: