二叉树度数为0,1,2,所对应的结点个数
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct node{
char data;
struct node *Lchild;
struct node *rchild;
}BiTnode;
//建立二叉树
BiTnode *Create_Tree(){
char ch;
BiTnode *root;
scanf("%c",&ch);
if(ch=='#') root=NULL;
else{
root=(BiTnode *)malloc(sizeof(BiTnode));
root->data=ch;
root->Lchild=Create_Tree();
root->rchild=Create_Tree();
}
return root;
}
int count1=0,count2=0,count3=0;
//查找各度数结点所对应的个数
int CountNode(BiTnode *root){
if(root){
CountNode(root->Lchild);
CountNode(root->rchild);
if(root->Lchild==NULL&&root->rchild==NULL){
count1++;
}else if(root->Lchild!=NULL&&root->rchild==NULL){
count3++;
}else{
count2++;
}
}
return count2;
}
int main(){
BiTnode *T;
T=Create_Tree();
int n=CountNode(T);
//printf("度为0的结点个数为:");
//printf("%d\n",count1);
printf("度为1的结点个数为:");
printf("%d\n",n);
//printf("度为2的结点个数为:");
//printf("%d\n",count3);
return 0;
}