说明

所谓层序遍历,即按一层一层的顺序遍历二叉树。
有二叉树如图,则层序遍历结果为: ABCDEFGABCDEFGABCDEFG
做法:
使用队列存储结点。
对于二叉树的每层,弹出一个结点并输出其值,而后将该结点的孩子结点放入二叉树。
重复上述步骤直到队列为空。
图示

第二层红字“弹出A”改为弹出B
代码
void LevelOrderReverse(BiNode *btree)
{
queue<BiNode*> q;
BiNode *t = btree;
q.push(t);
while(!q.empty())
{
BiNode *temp = q.front();
cout<<temp->data;
q.pop();
if(temp->lnode)
q.push(temp->lnode);
if(temp->rnode)
q.push(temp->rnode);
}
}
博客介绍了二叉树的层序遍历,即按层顺序遍历。做法是用队列存储结点,每层弹出一个结点输出值,再将其孩子结点放入队列,重复操作直至队列为空,还提及图示中第二层红字修改内容。
2180

被折叠的 条评论
为什么被折叠?



