也許快/簡單的問題。我已經實現了二叉樹,然後我希望將二叉搜索樹轉換爲數組或至少將其打印出來,就好像在數組中一樣。我遇到問題的地方是如何獲得'/ 0'中的NULL /標誌。寬度第一遍遍二叉搜索樹C++
例如可以說我有像一棵樹:
10
/\
6 12
/\ \
1 8 15
\
4
而且我希望它打印它應該如何打印。像:
[10,6,12,1,8,\0,15,\0,4,\0,\0,\0,\0,\0,\0]
^Something Like this^ I don't know if I counted the NULL correctly.
或者對我多麼希望去了解顯示在視覺上我的樹是如何得到這樣的「/」和「\」指向來自父母的按鍵正確輸出的間距另一種選擇:
10
/\
6 12
/\ \
1 8 15
\
4
這裏是什麼,我想詳細闡述代碼明智的,但即時通訊卡:
void BreadthFirstTravseral(struct node* root)
{
queue<node*> q;
if (!root) {
return;
}
for (q.push(root); !q.empty(); q.pop()) {
const node * const temp_node = q.front();
cout<<temp_node->data << " ";
if (temp_node->left) {
q.push(temp_node->left);
}
if (temp_node->right) {
q.push(temp_node->right);
}
}
}
幫助或Link和或建議和或示例代碼的任何類型將是非常讚賞。
While循環會不會永遠消失,因爲沒有任何東西會從q上彈出來?無限循環是我的計算機系統正在實現的。 –
@Xaphen yeap謝謝。我忘了彈出。請立即修復此問題 –