• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2分木のノードの指定方法を変えたい)

2分木のノードの指定方法を変えたい

このQ&Aのポイント
  • コマンドラインでの入力方法を変更し、2分木の形を作成したい。
  • 現在のプログラムではコマンドライン引数で入力された数を2分木に変換して表示するが、短縮形として表示する方法もある。
  • ノードの値と左右の子ノードの情報を含んだ形式で入力することで、コマンドラインでの入力を簡略化できる。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

上から下 (はある意味当然だけど), 左から右に詰めていく, ということね? ちょっと無駄なことはしてるけど, これでできないかなぁ: 1. まず必要なデータを設定した上で, right を使って連結リストを作る. 2. p と q を, それぞれその連結リストの先頭と 2番目の要素へのポインタとする. 3. p->left = q; q = q ? q->right : NULL; 4. r = p->right; p->right = q; p = r; q = q ? q->right : NULL; 3 と 4 を p != NULL の間繰り返せばいいような気がするけど.... ただ, イメージで書いただけなのでデバッガとお友達になることは覚悟してください.

kagari321
質問者

お礼

ありがとうございます 自分で書いてみましたができませんでした…

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

#2 には書いてるんだけど, こっちも試したわけじゃないんで「あれでできる」とは言いません. でも, 「どうやってどう『できない』のか」がわからんと, #2 の方法が実は間違っているのか, それともあの方針それ自体は正しいのかの判断もできません.

kagari321
質問者

お礼

自分の現状じゃできなさそうです ありがとうございました

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

8 7 3 2 5 1 という入力から, どのような 2分木を作るの?

kagari321
質問者

お礼

捕捉よりもお礼に書くべきでした

kagari321
質問者

補足

     8    / \   7     3  / \  / 2    5 1 こんな感じに上から数列の順にしたいのです

関連するQ&A