层次遍历一棵二叉树
层次遍历一棵二叉树算法:若二叉树为空,则退出,否则,按照树的结构,从根开始自上而下,自左而右访问每一个结点,从而实现对每一个结点的遍历...
层次遍历一棵二叉树算法:若二叉树为空,则退出,否则,按照树的结构,从根开始自上而下,自左而右访问每一个结点,从而实现对每一个结点的遍历
展开
1个回答
展开全部
void TraverseBTree(BTreeNode* BT)
{
const MaxLength=30;
BTreeNode* Q[MaxLength];
int front=0,rear=0;
BTreeNode*p;
if(BT!=NULL){
rear=(rear+1)%MaxLength;
Q[rear]=BT;
}
while(front!=rear)
{
front=(front+1)%MaxLength;
p=Q[front];
cout<<p->data<<' ';
if(p->left!=NULL)
{
rear=(rear+1)%MaxLength;
Q[rear]=p->left;
}
if(p->right!=NULL)
{
rear=(rear+1)%MaxLength;
Q[rear]=p->right;
}
}
}
{
const MaxLength=30;
BTreeNode* Q[MaxLength];
int front=0,rear=0;
BTreeNode*p;
if(BT!=NULL){
rear=(rear+1)%MaxLength;
Q[rear]=BT;
}
while(front!=rear)
{
front=(front+1)%MaxLength;
p=Q[front];
cout<<p->data<<' ';
if(p->left!=NULL)
{
rear=(rear+1)%MaxLength;
Q[rear]=p->left;
}
if(p->right!=NULL)
{
rear=(rear+1)%MaxLength;
Q[rear]=p->right;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询