BST印刷に関する質問があります。私は別のツリー印刷アルゴリズムを使用して横にツリーを印刷することができました。しかし、私は常にツリーを左から右に印刷します。木を上下に逆さまに印刷する方法はありますか?私はXYを使用することについていくつかのアイデアを見ましたが、私はコンソールでそれをしたくないので、同じことを達成するための方法がありますか?BST横から上から下へ印刷
編集:例えば、私はL、トラバーサル順序どおり使用して、M、R、T、S、G、Y、S、D、E、C、Aと入力を有し、私はこの入力を
Y
T
S
R
M
L
G
E
D
C
A
を得
私が望むのは、この90度を右に回転させるのと同じことです.Lは上に、次に他のものが続く必要があります。
編集2:レベルオーダーを使用してツリーを印刷するコードはここにありますが、フォーマットをどのように表示するかはわかりません。
queue<TreeNode*> q;
while(node != NULL)
{
cout << node->data << " " << endl;
if (node->left)
q.push(node->left);
if(node->right)
q.push(node->right);
if(!q.empty())
{
node = q.front();
q.pop();
}
else
node = NULL;
}
ツリーの実装では、親ノードへのリンクがありますか?もしそうなら、私はこれを行うことが可能であるべきだと思います。そうでなければ、通常のプリントを実行して配列にそれらの値を格納し、それを逆方向にトラバースすることができます(これはかなり効率が悪くなります)。 – twain249
"逆さま"とはどういう意味ですか? –
はい左右のポインタがあります。 – Spincel