Bfs
Bfs
#include <iostream>
#include <queue>
#include <omp.h>
using namespace std;
class Node {
public:
int data;
Node* left;
Node* right;
};
class BreadthFS {
public:
Node* insert(Node* root, int data);
void bfs(Node* root);
};
if (!root)
return newNode;
queue<Node*> q;
q.push(root);
while (!q.empty()) {
Node* temp = q.front();
q.pop();
if (!temp->left) {
temp->left = newNode;
return root;
} else {
q.push(temp->left);
}
if (!temp->right) {
temp->right = newNode;
return root;
} else {
q.push(temp->right);
}
}
return root;
}
queue<Node*> q;
q.push(root);
while (!q.empty()) {
int qSize = q.size();
if (currNode->left)
q.push(currNode->left);
if (currNode->right)
q.push(currNode->right);
}
}
}
}
int main() {
Node* root = nullptr;
BreadthFS bfsTree;
int data;
char ans;
do {
cout << "Enter data => ";
cin >> data;
root = bfsTree.insert(root, data);
cout << "Do you want to insert one more node? (y/n): ";
cin >> ans;
} while (ans == 'y' || ans == 'Y');
bfsTree.bfs(root);
return 0;
}
Output:
Enter data => 5
Do you want to insert one more node? (y/n) y
Enter data => 3
Do you want to insert one more node? (y/n) y
Enter data => 2
Do you want to insert one more node? (y/n) y
Enter data => 1
Do you want to insert one more node? (y/n) y
Enter data => 7
Do you want to insert one more node? (y/n) y
Enter data => 8
Do you want to insert one more node? (y/n) n
5 3 7 2 1 8