Print Level Order Traversal - C++ Trees
Print Level Order Traversal - C++ Trees
#include <fstream>
#include <queue>
using namespace std;
struct mynode
{
public:
mynode(int val, mynode *L, mynode *R)
{
datum = val;
left = L;
right = R;
}
int datum;
mynode *left;
mynode * right;
};
queue<mynode *> q;
while(root != NULL)
{
cout << root->datum << " " ;
if(root->left != NULL)
{
q.push(root->left);
}
if(root->right != NULL)
{
q.push(root->right);
}
if(!q.empty())
{
root = q.front();
q.pop();
}
else
{
}
cout << endl;
}
int main()
{
//building the tree
mynode * p15 = new mynode(19, NULL, NULL);
mynode * p14 = new mynode(80, NULL, p15);
mynode * p13 = new mynode(45, NULL, NULL);
mynode * p12 = new mynode(60, NULL, NULL);
mynode * p11 = new mynode(84, NULL, NULL);
mynode * p10 = new mynode(12, NULL, NULL);
mynode * p9 = new mynode(62, NULL, NULL);
mynode * p8 = new mynode(74, p13, p14);
mynode * p7 = new mynode(94, NULL, NULL);
mynode * p6 = new mynode(21, NULL, p12);
mynode * p5 = new mynode(39, p10, p11);
mynode * p4 = new mynode(77, p8, p9);
mynode * p3 = new mynode(83, p6, p7);
mynode * p2 = new mynode(46, p4, p5);
mynode * p1 = new mynode(35, p3, NULL);
mynode * root = new mynode(50, p1, p2);
levelOrderTraversal(root);
system("pause");
return 0;