Ha képesek vagyunk letölteni a következő elem azonos szintjén, készen vagyunk. Mivel a per a korábbi ismeretekkel , akkor érheti el ezeknek az elemeknek a szélessége bejárást.
Most egyetlen probléma az, hogy hogyan ellenőrizhető vagyunk utolsó eleme minden szinten. Emiatt azt kell appending határoló (NULL ebben az esetben), hogy jelölje végén egy szintet.
Algoritmus: 1. Öntsön gyökeret sorban.
2. NULLA sorban.
3. Amíg a sor nem üres
4. x = csel első eleme a sorból
5. Ha x nem NULL
6. x-> rpeer <= legfelső eleme sorban.
7. fel a bal és jobb gyermeke x sorban
8. mást
9. Ha a sor nem üres
10. NULLA sorban
11. végén, ha
a 12. végén, míg
a 13. visszatérés
#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;
}