2012-01-26 6 views
3

私はC++で、最大6色の平面グラフの頂点を色付けするアルゴリズムを作成しようとしています。私はちょっと擬似コードを探していました。どんな助けもありがとうございます。ありがとう。6カラーグラフ頂点カラーアルゴリズム

+0

@EdHeal私たちは宿題にタグを付けることをやめましたか?確かにそれのように聞こえる。 –

+0

はい、そうです。私は二重にリンクされたリストを使うことを知っています。そして、私は、最小のjの非真空のj度のリストの最初の頂点を頂点uiとして指定しなければならないと思います。 j度リストからuiを削除します。 Gのuiに隣接していて、ある程度のリストに残っている各頂点U 'に対して、j'度のリストからj '、delete - u'を取り出し、j'-1度のリストにuを挿入します。すでに色付けされているviに隣接する頂点で発生しない最小の色値(1〜6の間)を各頂点に割り当てるforループがあります。それはどうやって聞こえる? – OhioState22

+0

あなたは私が下にリンクした同じ論文の抜粋を見たのと同じように聞こえます。アルゴリズムは問題ありません...だから問題は何ですか? (私は最近、このアルゴリズムをJavaでコード化しました。より具体的な場合は、ポインタを与えることができます)。 –

答えて

5

参照:

デビッドMatula、ヨッシShiloachによってFIVE-COLORING A平面グラフ 、ロバート・タージャン

(ただ、GoogleのこのFOR TWO線形時間アルゴリズムとあなたがのPDFを見つけることができます紙)。

これは、O(n)時間に平面グラフを5色描く紙ですが、6色のアルゴリズムの簡単な説明から始まります。ここに重要なエキスがあります(書式の謝罪、これは単なるPDFのスクレープです):

アロギー6カラー。隣接リスト 形式のn頂点平面グラフGが与えられた場合、このアルゴリズムはGの6色を決定する。ステップ1. [確立する 度リスト]各jについて、0-j-n-1は二重に< <リンクされた 次数jのGのすべての頂点のリスト。 - ステップ2. [頂点のラベルの最小次数] i = n、n - 1、n * - 1 ,. 。 。 、1は非真空j度の第1の頂点を頂点t/iとして最小のjのリスト を指定する。 j度のリストからviを削除します。 Gのtliに隣接していて、 度数リストに残っている各頂点U 'について、jr度リストからuを削除し、uを' j9 - 1度リストに挿入します。ステップ3. [色の頂点] i = 1,2の場合。 。 。 、 n、頂点tを割り当てる)i最も近い色の値( の整数は1から6の間の整数でなければならない)は、すでに着色されている t)iに隣接する頂点で発生しない。

関連する問題