也许快速/简单的问题。我已经实现了二叉树,然后我希望将二叉搜索树转换为数组,或者至少像在数组中一样打印出来。我遇到问题的地方是如何在“\ 0”中获取 NULL/标志。
例如,假设我有一棵树,例如:
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);
}
}
}
非常感谢任何类型的帮助或链接和/或建议和/或示例代码。