हम एक ही स्तर पर अगले तत्व लाने के लिए सक्षम हैं, तो हम किया जाता है। के अनुसार हमारे पूर्व ज्ञान है, हम चौड़ाई पहले ट्रेवर्सल का उपयोग कर इन तत्व पहुँच सकते हैं।
अब केवल एक समस्या यह है कि कैसे अगर हम किसी भी स्तर पर पिछले तत्व पर हैं जाँच करने के लिए है। इस कारण से, हम एक सीमांकक (इस मामले में शून्य) एक स्तर के अंत चिह्नित करने के लिए जोड़कर किया जाना चाहिए।
एल्गोरिथ्म: 1. कतार में रखें जड़।
2. कतार में रखें शून्य।
3. जबकि कतार खाली नहीं है
4. एक्स = कतार से पहले तत्व लाने
5. यदि x शून्य नहीं है
6. x-> rpeer <= कतार में शीर्ष तत्व।
7. डाल छोड़ दिया और कतार में एक्स के सही बच्चे
किसी और 8.
9. अगर कतार खाली नहीं है
10 पुट शून्य कतार में
11. अगर अंत
12. अंत जबकि
13. वापसी
#include <queue>
void print(tree* root)
{
queue<tree*> que;
if (!root)
return;
tree *tmp, *l, *r;
que.push(root);
que.push(NULL);
while( !que.empty() )
{
tmp = que.front();
que.pop();
if(tmp != NULL)
{
cout << tmp=>val; //print value
l = tmp->left;
r = tmp->right;
if(l) que.push(l);
if(r) que.push(r);
}
else
{
if (!que.empty())
que.push(NULL);
}
}
return;
}