数据结构(C语言版) 树和二叉树 算法设计Demo6
Posted Aiden (winner)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版) 树和二叉树 算法设计Demo6相关的知识,希望对你有一定的参考价值。
用按层次顺序遍历二叉树的方法,统计树中具有度为1的结点数目。
[题目分析]
若某个结点左子树空右子树非空或者右子树空左子树非空,则该结点为度为1的结点
[算法描述]
int Level(BiTree bt) //层次遍历二叉树,并统计度为1的结点的个数
int num=0; //num统计度为1的结点的个数
if(bt)
QueueInit(Q); QueueIn(Q,bt);//Q是以二叉树结点指针为元素的队列
while(!QueueEmpty(Q))
p=QueueOut(Q);
cout<<p->data; //出队,访问结点
if(p->lchild && !p->rchild ||!p->lchild && p->rchild)
num++;
//度为1的结点
if(p->lchild)
QueueIn(Q,p->lchild); //非空左子女入队
if(p->rchild)
QueueIn(Q,p->rchild); //非空右子女入队
// while(!QueueEmpty(Q))
//if(bt)
return(num);
//返回度为1的结点的个数
以上是关于数据结构(C语言版) 树和二叉树 算法设计Demo6的主要内容,如果未能解决你的问题,请参考以下文章