广度优先遍历,指的是从图的一个未遍历的节点出发,先遍历这个节点的相邻节点(左节点和右节点),再依次遍历每个相邻节点的相邻节点(左节点和右节点)。
这里借用网上的动图直观的呈现广搜的过程

相关代码如下
一层一层打印所以节点。
#include
#include
using namespace std;
struct Node {
Node *right;
Node *left;
int value;
};
static void bfs(Node *root) {
if (root == nullptr) {
return;
}
stack s;
s.emplace(root);
while (!s.empty()) {
Node *node = s.top();
s.pop();
cout << "value" << node->value << endl;
if (node->left != nullptr) {
s.emplace(node->left);
}
if (node->right != nullptr) {
s.emplace(node->left);
}
}
}
[1] https://www.modb.pro/db/25754