以下内容为求二叉树函数的要求,求指教!

已知某二叉树结点数据类型为整型。
1。定义结点类型和结点指针类型。
2。编写一个函数,实现求二叉树的叶结点数。
3。编写函数,判断二叉树是否为满二叉树。
用C语言编

幕布斯6054654
浏览 149回答 1
1回答

呼唤远方

完全二叉树中,任意结点的左、右子树的深度都相等,所以你只需做一个后根遍历,即可知道一个二叉树是否为完全二叉树;下面假设二叉树的结点结构是:typedef struct _Node{_Node* lchild;_Node* rchild;}BinaryTree;用VC编程,算法如下://检查二叉树是否完全二叉树,如果不是,返回0,//否则返回二叉树的高度int checkCompleteBinaryTree(BinaryTree* tree){//叶子结点if(tree->lchild==NULL && tree->rchild==NULL)return 1;//缺一个子树,不是完全二叉树if(tree->lchild==NULL || tree->rchild==NULL)return 0;//左子树高度int lheight=checkCompleteBinaryTree(tree->lchild);//左子树不是完全二叉树if(lheight==0)return 0;//右子树高度int rheight=checkCompleteBinaryTree(tree->rchild);//右子树不是完全二叉树if(rheight==0)return 0;//左右子树高度不相同,因此不是完全二叉树if(lheight!=rheight)return 0;//返回二叉树的高度return lheight+1;}
打开App,查看更多内容
随时随地看视频慕课网APP