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

来源:互联网 发布:js tip 编辑:程序博客网 时间:2024/05/22 11:53

二叉树的广度优先便利遵循从上之下,从左至右的原则.实现广度优先便利,利用了队列(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;}
0 0
原创粉丝点击