采用层序遍历一棵给定的二叉树 ,输出各节点中的数据(假设节点数据为字符型)

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:35:52
用到的数据结构:链队列,循环队列

用队列
首先根节点入队
当队列不为空时,删除队头元素,并将该元素的左右两个子节点压入队列
如此往复,直至队列为空
代码:
void NonRecursiveLevelOrder(BinTreeNode *tree)
{
queue<BinTreeNode*> q ;
q.push(tree) ;

while(!q.empty() && q.front() != NULL)
{
cout << q.front()->data ;
if(q.front()->left != NULL)
q.push(q.front()->left) ;
if(q.front()->right != NULL)
q.push(q.front()->right) ;
q.pop() ;
}
}