Ich habe einige Nachforschungen angestellt, und mir scheint ein kleiner Teil dieses Algorithmus zu fehlen. Ich verstehe, wie eine Breitensuche funktioniert, aber ich verstehe nicht, wie genau sie mich zu einem bestimmten Pfad bringt, anstatt mir nur zu sagen, wohin jeder einzelne Knoten gehen kann. Ich denke, der einfachste Weg, meine Verwirrung zu erklären, ist ein Beispiel:
Nehmen wir zum Beispiel an, ich habe ein Diagramm wie das folgende:
Und mein Ziel ist es, von A nach E zu kommen (alle Kanten sind ungewichtet).
Ich fange bei A an, weil das mein Ursprung ist. Ich stelle A in die Warteschlange, gefolgt von der sofortigen Warteschlange A und der Erkundung. Dies ergibt B und D, da A mit B und D verbunden ist. Ich stelle also sowohl B als auch D in die Warteschlange.
Ich stelle B in die Warteschlange und erkunde es und stelle fest, dass es zu A (bereits erforscht) und C führt, also stelle ich C in die Warteschlange. Dann stelle ich D in die Warteschlange und stelle fest, dass es zu E führt, meinem Ziel. Ich stelle dann C in die Warteschlange und stelle fest, dass es auch zu E führt, meinem Ziel.
Ich weiß logischerweise, dass der schnellste Pfad A-> D-> E ist, aber ich bin mir nicht sicher, wie genau die Breitensuche hilft - wie sollte ich Pfade so aufzeichnen, dass ich nach Abschluss die Ergebnisse analysieren und sehen kann dass der kürzeste Weg A-> D-> E ist?
Beachten Sie außerdem, dass ich eigentlich keinen Baum verwende, sodass es keine "übergeordneten" Knoten gibt, sondern nur untergeordnete.