您的位置:首页 > 编程语言 > C语言/C++

C++模板实现二叉查找树(四 广度优先遍历)

2017-04-01 09:52 543 查看
二叉树的广度优先便利遵循从上之下,从左至右的原则.实现广度优先便利,利用了队列
(LinkQueue<BinNode<T>*, capacity> *queueHelper;)
的先进先出的性质.先将节点入队列,之后取出,访问.访问完后,将其左右子节点入队列.依次循环即可.

代码如下:

template <class T, unsigned int capacity>
bool BinSearchTree<T, capacity>::scopeOrder()
{
bool result = false;
if (isEmpty())
{
result = false;
}
else
{
queueHelper = new LinkQueue<BinNode<T>*, capacity>();
queueHelper->enQueue(root);
while (!(queueHelper->isEmpty()))
{
BinNode<T>* temp = NULL;
queueHelper->deQueue(temp);
cout << "ScopeOrder: The value is :" << temp->data << endl;
if (NULL != temp->left)
{
queueHelper->enQueue(temp->left);
}
if (NULL != temp->right)
{
queueHelper->enQueue(temp->right);
}
}
if (NULL != queueHelper)
{
delete queueHelper;
queueHelper = NULL;
}
result = true;
}
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: