求二叉树度为0,1,2的结点个数
程序员文章站
2022-05-16 18:35:59
...
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree CreateBiTree( ){
char ch;
scanf("%c",&ch);
if(ch=='#') return NULL;
else{
BiTree T = (BiTree)malloc(sizeof(BiTNode));
T -> lchild = T -> rchild = NULL;
T->data = ch;
T->lchild = CreateBiTree();
T->rchild = CreateBiTree();
return T;
}
}
//统计二叉树中度为0的结点个数
int Degree_0(BiTree T){
if(T==NULL)
return 0;
if(T->lchild==NULL&&T->rchild==NULL)
return Degree_0(T->lchild)+Degree_0(T->rchild)+1;
else
return Degree_0(T->lchild)+Degree_0(T->rchild);
}
//统计二叉树中度为1的结点个数
int Degree_1(BiTree T){
if(T==NULL)
return 0;
if((T->lchild==NULL&&T->rchild!=NULL)||(T->lchild!=NULL&&T->rchild==NULL))
return Degree_1(T->lchild)+Degree_1(T->rchild)+1;
else
return Degree_1(T->lchild)+Degree_1(T->rchild);
}
//统计二叉树中度为2的结点个数
int Degree_2(BiTree T){
if(T==NULL)
return 0;
if((T->lchild!=NULL&&T->rchild!=NULL))
return Degree_2(T->lchild)+Degree_2(T->rchild)+1;
else
return Degree_2(T->lchild)+Degree_2(T->rchild);
}
上一篇: java中判断当前日期是否是节假日
下一篇: vue里的自定义指令directives
推荐阅读
-
求二叉树度为0,1,2的结点个数
-
SWUST-973 976 975-统计利用先序遍历创建的二叉树的度为0,1,2的结点个数
-
统计二叉树中度为0,1,2的节点个数
-
二叉树基本操作补充(求二叉树中度为0/度为1/度为2的结点个数)
-
C语言 二叉树 统计二叉树中度为0,1和2的结点个数【树和二叉树】给定先序序列,按照该序列创建对应的二叉树,并输出该二叉树度为0,1和2的结点个数。输入:一行,二叉树按先序遍历序列,空指针用字符^占位
-
(二叉树)4. 二叉树的各类计算问题(总结点个数、[叶子|度数为1|度数为2]结点个数以及二叉树深度计算)
-
二叉树:度为2的结点个数、叶子结点的个数、结点的个数
-
数据结构 统计二叉树中度为0,1和2的结点个数
-
统计二叉树中度为1,2的结点个数c++
-
6-1 统计二叉树度为2的结点个数 (10分)(c++)