求二叉树b的结点个数、叶子结点个数

求二叉树b的结点个数、叶子结点个数,第1张

#include"tree.cpp"		//包含了二叉树的基本算法

/*--------
求二叉树b的结点个数、叶子结点个数 
---------*/

//求二叉树b的结点个数
int Nodes(BTNode *b){
	int num1,num2;
	if(b==NULL)
		return 0;
	else if(b->lchild==NULL && b->rchild==NULL)		//只有根结点
		return 1;
	else{
		num1 = Nodes(b->lchild);	//递归遍历左子树
		num2 = Nodes(b->rchild);	//递归遍历右子树
		return(num1+num2+1);		//每次递归返回 左结点个数+右结点个数+根结点 
	} 
} 

//求二叉树b的叶子结点个数
int LeafNodes(BTNode *b){
	int num1,num2;
	if(b==NULL)
		return 0;
	else if(b->lchild==NULL && b->rchild==NULL)
		return 1;
		else{
		num1 = Nodes(b->lchild);	//递归遍历左子树
		num2 = Nodes(b->rchild);	//递归遍历右子树
		return(num1+num2);		//每次递归返回 左叶结点个数+右叶结点个数 
	}
} 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/914780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存