你好,请问可以告诉我怎么写用非递归的方法求二叉树中叶子节点的数目怎么写呢?用c语言写
2个回答
展开全部
呵呵,我才写没多久
/*
算法思想:
利用层次遍历实现,只需加一个条件即可
*/
//实现函数
int LevelLeafNode=0;
void TransLevel(BT *T)
{
BT *NodeQueue[MAXNODE],*p=T;
int i=1,j=1;//分别指向队首和队尾
if(p!=NULL)
NodeQueue[j++]=p;
while(i!=j)
{
p=NodeQueue[i];//队头出队
if(p->LeftChild==NULL&&p->RightChild==NULL)//统计二叉树叶子结点的总数
++LevelLeafNode;
if(p->LeftChild!=NULL)
NodeQueue[j++]=p->LeftChild;
if(p->RightChild!=NULL)
NodeQueue[j++]=p->RightChild;
++i;//指向队首元素
}
}
/*
算法思想:
利用层次遍历实现,只需加一个条件即可
*/
//实现函数
int LevelLeafNode=0;
void TransLevel(BT *T)
{
BT *NodeQueue[MAXNODE],*p=T;
int i=1,j=1;//分别指向队首和队尾
if(p!=NULL)
NodeQueue[j++]=p;
while(i!=j)
{
p=NodeQueue[i];//队头出队
if(p->LeftChild==NULL&&p->RightChild==NULL)//统计二叉树叶子结点的总数
++LevelLeafNode;
if(p->LeftChild!=NULL)
NodeQueue[j++]=p->LeftChild;
if(p->RightChild!=NULL)
NodeQueue[j++]=p->RightChild;
++i;//指向队首元素
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询