- ベストアンサー
2分木で作るプログラミングについて
- 2分木を使ったゲームのプログラミングについて紹介します。
- プログラムの内容は、生き物あてクイズを行いながら2分木を構築します。
- YESと答えた質問は木の左に、NOと答えた質問は木の右に保存されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ではほんの取っ掛かり。 単純な二分木のノード: class node { std::string question_; // 質問 node* yes_; // YES時の選択肢 node* no_; // NO 時の選択肢 public: node(const std::string& q) : question(q), yes_(0), no_(0) {} void add_yes(node* n) { yes_ = n; } void add_no(node* n) { no_ = n; } node* yes() { return yes_; } node* no() { return no_; } std::string question() const { return question_; } ... }; node* p = 最初のノード while ( true ) { std::cout << p->question() << std::endl; YES/NO を入力 if ( YESなら ) p = p->yes(); if ( NOなら ) p = p->no(); if ( p == 0 ) { 降参! 質問をもらって p につなぐ } } ...とかなんとか。
その他の回答 (2)
- Mizyu
- ベストアンサー率41% (245/593)
で、何がわからないのでしょう? プログラムの文法がわからないのでしょうか? プログラムの実行方法がわからないのでしょうか? アルゴリズム的なことがわからないのでしょうか? 少なくとも、OS、言語、その他動作環境についてなどの情報が必要です。 まずは何がわからないかの切り出しが必要なのではないでしょうか? これでは何も答えようがありません。
補足
すみません。 C++です。 2分木の考え方をはじめて知りのプログラミングですが、どのようにツリーをつくればよいかがわからなく まよってます。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
何が知りたいのですか? # 'この仕様を満足するコードを書いてくれ' # でしたら お断りします!
補足
ツリーの考え方は教科書を読んでわかりました。 しかし、いざ実践するとなると、どのようなツリーを 考えればいいのか、さっぱりわからないのです。
お礼
早速のかなり詳しいお返事ありがとうございます。 今まさにとりかかります。 また質問あれば質問します。 とにかくありがとうございます!