次のクエリがあります。
- グラフを動的に作成する方法を知りたい
- グラフで複数の重みを管理する方法
kruskal を使用して最小全域木で特定のノードから別のノードまでの距離を見つける方法.kruskals では、最小全域木はエッジのベクトルとして出力されます.したがって、頂点は明示的に格納されません. たとえば、ノード0から最も遠いノードまでの距離を取得する方法がわかりません。ソースとターゲットを使用して頂点を取得してから、頂点を配列に格納しようとしました。その後、ノード 0 を見つけ、そこから頂点を反復および逆反復して重みを計算し、ノード 0 からの最大のダイアタンスを見つけました。私はそれについて最もラウンドアバウトな方法を使用しています。これには関数が必要であり、おそらくこれについての巧妙な方法があります。
kruskal は、スパニング ツリーの順序でエッジをスパニング ツリーに格納しますか? または、少なくとも最初のエッジの最初のノードが実際の最初のノードに格納されていますか? クラスカルのスパニングツリーでノードの順序を取得するにはどうすればよいですか?
- 同様に、Prim を使用してスパニング ツリーの重みを取得するにはどうすればよいですか? 私が行った方法は、前任者が格納されている前任者配列を使用し、weightsMap でどのエッジを見つけて追加するかということでした。もっと簡単な方法はありますか? そして、プリムでは、distanceMap はノード 0 から他のノードまでの距離をスパニング ツリーではなく元のグラフに格納します。