• ベストアンサー

多分木のプログラミングについて

一般的な多分木の深さ優先探索のプログラミングを 考えているのですがどうもわかりません。 多分木のプログラミング方法あるいはそのような ソースを公開したサイトがあれば教えていただけないでしょうか。

noname#25605
noname#25605

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

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.3

木の探索は、 1. ノードのキューを用意する 2. キューにrootノードをいれる 3. キューからノードを一つ取りだす 4. 取り出したノードの子ノードを全てキューに追加する 5. 3に戻る でできます。 キューをFILOにすれば深さ優先探索、FIFOにすれば幅優先探索になります。

noname#25605
質問者

お礼

ご回答ありがとうございました。 参考にさせていただき作成できました。

その他の回答 (2)

  • yonfa
  • ベストアンサー率52% (22/42)
回答No.2

二分木については理解されているのでしょうか? 二分木は多分木の特殊系にすぎません。 二分木の探索が、 (1)左の子を探索 (2)右の子を探索 (3)親に戻る ということになると思います。 多分木の探索は、 (1)第1の子を探索 (2)第2の子を探索 : (3)最後の子を探索 (4)親に戻る ということになります。 二分木のソースはたくさんみつかると思いますので、 それを改良されてはどうでしょうか? 「多分木」でググって出てきたURLを一応乗せておきます。

参考URL:
http://www.geocities.jp/ky_webid/algorithm/
noname#25605
質問者

お礼

ご回答ありがとうございました。

noname#227760
noname#227760
回答No.1

こんばんは。 こういうもののことでしょうか? ■αβ法 http://uguisu.skr.jp/othello/6-1.html

noname#25605
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • 二分探索木

    二分探索木の完全なソースコードが載っているサイトは無いでしょうか??調べてみたのですが、関数ごとに分けて書かれているものばかりで、中々見つかりません。お願いします。

  • 木構造

    木構造において縦型探索(深さ優先順探索)を行った探索順を示せ。 と言われた場合、前順と中間順と後順のどれで記せばいいのでしょうか? どれも深さ優先順には変わりはないのでしょうか?

  • 二分探索木を用いての探索

    C言語でプログラミングしています。 二分探索木を用いて探索するプログラムなのですが 与えられた値の前後の値(与えられた値より大きく(小さく)てその値 に一番近いもの)を見つけたいのですが分かりません。 いろいろとネット等で調べてみると「挿入してその左右を見る」 となっているのですが…。 普通の二分探索木ではだめなのでしょうか? よろしくお願いします。

  • B木とR木の違いを教えて下さい

    当方、今年情報系の学科に入学しました大学1回生です。 大学のレポートで 問:B木とR木のキー、及び探索方法の違いを調べよ。 という問題が出題されたのですが R木というものに関する資料が少なくて困っています。 今、自分で調べた結果 探索方法に関しては ・B木 根から始めて探索キーの値とノードのキーを比較しながら 部分木をたどっていく。 葉に到達したときのに葉のキーの値と探索キーが等しければ成功、 等しくなければ失敗。 ・R木 点質問で探索キー(?)を含むMBRを探索 範囲質問 というのが違いかなと思うのですが、上手く1つの文章で表現できません。 (R木の探索方法についてはイマイチ理解できない)  またキーに関する違いと言うのもイマイチよく分かりません。 違いを教えていただけると嬉しいです。 また、どなたかR木に関する詳しい解説のあるHPか書籍をご存知ではないでしょうか? 宜しく御願い致します。

  • 退化木をバランス木にしたい

    二分探索木でアドレス帳を作っています。 二分探索木はノードの削除を繰り返すと退化木になってしまいますが、 これを回避するために二分探索木を再構成して、バランス木に近い形にしたいのです。 この二分探索木を再構成するアルゴリズムが全く思いつかず困っています。 詳しい方、ご教授お願い申し上げます。 ちなみに言語はCです。

  • 木について

    二分探索木と比べて、B木の利点はどういうことがあるので しょうか?お願いします。

  • 探索木の問題について

    探索木について。 探索木において、探索効率を高めるため(探索経路を短くするため)、子の数を最大m個までとするm分探索木を考える。この木の探索についての計算量は、どのように考えれば良いですか。 説明してください。 という問題なのですが 画像のA,Bのタイプのどちらで考えればいいのかわかりません そこで、どちらのタイプで考えればいいのか あわよくば、問題についても答えを教えてください よろしくおねがいします

  • 最初に学ぶべきプログラミング言語は?

    プログラミングをしたいと思います。 目的がはっきりしていないのですが、ソースの公開されているプログラムを自分向きに修正、改造したりしたいです。(要望を出して対応してもらうのは申し訳ないですし、自分で多少はいじれるようになりたいです。せっかくソースを公開されているのですから。) 疑問に思ったのは、最初に学ぶべき言語についてです、各言語の特色、主要な言語の情報を教えていただけないでしょうか。 プログラミングを始めるに際して、入り口に立つための準備に関することを教えていただけないでしょうか。 よろしくお願いします。

  • 探索木って・・(?_?)

    題の通り探索木には、 横形探索や縦形探索などがありますが、 詳しく(分かりやすい)載っているホームページってありませんか?(^-^; 返事お待ちしてま~す!(^-^)ノ

  • 万年暦を導き出すプログラミング

    来訪者が少しでも増えればと、試しに占いのページを作ってみたいと思うのですが、そこで一番困ったのは、四柱推命等で使う万年暦の求め方です。膨大な万年暦を打ち込むのは大変だし、ミスも起こりうることなので、何かいいプログラミング方法、もしくはサンプルソースなどはどこかにないでしょうか。 あるいは公開された万年暦の既存の物があれば、可能なら使わせていただければ幸いです。 言語は問いません。

専門家に質問してみよう