Registriert: Mo Nov 17, 2003 09:07 Beiträge: 24 Wohnort: Regensburg
Hi Leutz !
Ich bräuchte für ein Projekt einen NICHT rekursiven (Also eine Funktion die sich selbst aufruft) Wegsuch-Algorithmus, und zwar für folgendes Problem: Ich habe z.B. ein Netzwerk mit ca. 1000 Knotenpunkten,wobei jeder Knotenpunkt bis zu 20 Verbindungen mit anderen Knoten haben kann. Falls jemand dafür eine Idee hat, bitte melden.
Registriert: Mi Aug 20, 2003 09:15 Beiträge: 70 Wohnort: Italien
Wenn du alle Knoten in einem Array (oder irgendeiner Liste) speicherst, kannst du einfach alle Knotenpunkte durchgehen und du merkst dir die Position deines Elements.
Danach musst du nur mehr die Position/ Pfad zu deinem Knoten heraussuchen: Du must noch mal alle Elemente durchgehen, und das Element finden, das der Vorgänger des gemerkten Knotens ist.
Ist zwar langsam, aber funktioniert:
Pseudocode:
Code:
var i,j :integer;
ergebnis :arrayofinteger;
for i:=1toSizeOf(<array>)do
if <array>[i]= gesuchtes_Element then
merker := i;
j:=1;
repeat
for i:=1toSizeOf(<array>)do
if <array>[i].nextes_element= merker then
begin
j := j+1;
SetLength(ergebnis, j);
ergebnis[j-1]:= i;
end;
until i = Wurzel_knoten_index;
_________________ "Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt" Albert Einstein
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.