Biz aynı seviyede bir sonraki eleman getirmek mümkün değilse, bitti. Gereğince bizim ön bilgi , biz genişlik ilk geçişi kullanarak bu eleman erişebilir.
Şimdi tek sorun biz herhangi bir seviyede son öğe de olup olmadığını kontrol etmek nasıl. Bu nedenle, biz bir seviyede sonunu işaretlemek için bir sınırlayıcı (bu durumda NULL) ekleme yapılmalıdır.
Algoritma: kuyrukta 1. koyun kökü.
Kuyrukta 2. koyun BOŞ.
Sıra boş değilse, 3. da
4. X = kuyruktan ilk elemanı getirme
x NULL değilse 5.
sıranın 6. x-> rpeer <= üst eleman.
7. koymak sol ve x sağ alt sıraya
başka 8.
sıra boş değilse, 9.
10 koymak NULL kuyrukta
11. ucu ise
ise 12. ucu
13 dönüş
#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;
}