Tree-BFS(Breadth-First-Search)

BFS-Breadth First Search-广度优先搜索

广度优先搜索(Breadth First Search)又叫宽度优先搜索或层次优先搜索或横向优先搜索,从根结点开始沿着树的宽度搜索,可以利用队列实现BFS。

Ex:BFS遍历是ABCDEF

《Tree-BFS(Breadth-First-Search)》

我们可以用队列来实现它,队列-先进先出(first in first out),C++有队列的模版库。

Ex:

queue<int> q;
//队首:先进元素   队尾:后进元素
q.empty();       //如果队列为空返回true,否则返回false
q.size();        //返回队列中的元素的个数
q.pop();         //删除队列首元素但不返回其值
q.front();       //返回队首元素的值,但不删除该元素
q.push();        //在队尾压入新元素
q.back();        //返回队尾元素的值,但不删除该元素

Code:

void BFS(TreeNode* root)
{
    queue<TreeNode*> q;
    q.push(root);
    while(!q.empty())
    {
        TreeNode* temp=q.front();
        cout<<temp->val<<' ';
        q.pop();
        if(temp->left!=NULL)
            q.push(temp->left);
        if(temp->right!=NULL)
            q.push(temp->right);
    }
}

    原文作者:BFS
    原文地址: https://blog.csdn.net/u011391629/article/details/52249120
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞