求一棵二叉树的深度和双分支结点的个数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return 0;
else
N1=DeepTree(T->rchild);/*遍历左子树*/
N2=DeepTree(T->lchild);/*遍历右子树*/
if(N1>N2)
return N1+1;
else
return N2+1;
}
intNumNode(BiTreeT)
{
/*求双节点个数*/
intnum1,num2;
k=NumNode(T);
printf("the two node is \n%d",k);
getch();
}
if(T==NULL)
return 0;
num1=NumNode(T->rchild);/*遍历左子树*/
num2=NumNode(T->lchild);/*遍历右子树*/
if(T->rchild!=NULL&T->lchild!=NULL)
return (num1+num2+1);
else
return (num1+num2);
T->data=ch;/*生存根节点*/
T->lchild=CreateBiTree();/*构造右子树*/
T->rchild=CreateBiTree();/*构造左子树*/
}
return (T);
}
intDeepTree(BiTreeT)
{ /*求深度*/
intN1,N2;
if(T==NULL)
二叉树采用二叉链表结构表示。设计并实现如下算法:求一棵二叉树的深度和双分支结点的个数。
#include <stdio.h>
#include <stdlib.h>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedefstructBiTNode
{ /*数结构*/
char data;
structBiTNode*lchild,*rchild;
}BiTNode,*BiTree;
BiTreeCreateBiTree()
{ /*递归建树*/
charch;
BiTreeT;
scanf("%c",&ch);
if(ch=='')
T=NULL;
else
{
T=(BiTNode*)malloc(sizeof(BiTNode));/*分配存储空间*/
}
void main()
{
BiTreeT;
inti,k;
printf("pleaseFra Baidu bibliotekcreate tree:\n");
T=CreateBiTree();
printf("\n");
i=DeepTree(T);
printf("the tree's deep is \n%d",i);
printf("\n");
相关文档
最新文档