トーナメントは完全な有向グラフで、任意の2つの頂点uとvが与えられたときにそれらの間に有向エッジが存在するエッジはuからvまでです)。Pythonで隣接リストを持つトーナメントでハミルトニアンパスを見つける
ハミルトニアンパスは常にトーナメントに存在します。したがって、{u:[v、w]、v:[w]}形式の隣接関係リストは、uからw、uからv、wからwへの有向エッジがある場合、ハミルトニアンパスVeritcesを順番に印刷していますか?
あなたがpythonなどを知らなくても、アルゴリズムだけが役に立ちます。私はそれについて考えました、そして、私は最高度の頂点から始める必要があると思いますか?次に、2番目に高い等級の頂点を、最も低い次数の頂点まで追加します。しかし、私はこれがフェールセーフな方法であるとは思わないが、最高度の頂点は2番目に高い頂点で殴られた可能性がある。
ありがとうございました!
O(n^2)アルゴリズムはここに記述されています:https://sbjoshi.wordpress.com/2010/11/11/tournament-graph-and-hamiltonian-path/ –
O(nlogn) //epubs.siam.org/doi/abs/10.1137/0403002 – Dandelion
ありがとうございます@PeterdeRivazと@Vasei! – PolkaDot