判断是否为满二叉树

来源:互联网 发布:linux后台运行命令 编辑:程序博客网 时间:2024/06/03 19:37
#include<stdio.h>#include<stdlib.h>typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree; int Full(BiTree &bt){//判断是否为满二叉树 if(bt){if(bt->lchild==NULL&&bt->rchild==NULL)return 1;else if(bt->lchild==NULL||bt->rchild==NULL)return 0;else return (Full(bt->lchild)&&Full(bt->rchild));}}void CreatBiTree(BiTree &bt){//构造二叉树char ch;ch=getchar();if(ch=='#')bt=NULL;else{bt=(BiTree)malloc(sizeof(BiTNode));bt->data=ch;CreatBiTree(bt->lchild);CreatBiTree(bt->rchild);} } int main(){int flag;BiTree bt;CreatBiTree(bt);flag=Full(bt);printf("判断是否为满二叉树:\n");if(flag==1){printf("是!\n");}elseprintf("否!\n");return 0;}