Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 20:23

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Wegsuche
BeitragVerfasst: Do Dez 11, 2003 09:20 
Offline
DGL Member
Benutzeravatar

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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 11, 2003 13:00 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Denk dir nen Rekursiven Algor. aus und entferne die Rekursion. Eins kann ich dir jetzt schon sagen: Das wird wohl ein recht langer Algorithmus werden.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 11, 2003 13:58 
Offline
DGL Member
Benutzeravatar

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:
  1.  
  2. var i,j : integer;
  3.       ergebnis : array of integer;
  4.  
  5. for i:=1 to SizeOf(<array>) do
  6.   if <array>[i] = gesuchtes_Element then
  7.     merker := i;
  8.  
  9. j:=1;
  10. repeat
  11.   for i:=1 to SizeOf(<array>) do
  12.     if <array>[i].nextes_element = merker then
  13.     begin
  14.       j := j+1;
  15.       SetLength(ergebnis, j);
  16.       ergebnis[j-1] := i;
  17.     end;
  18. until i = Wurzel_knoten_index;
  19.  

_________________
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt" Albert Einstein


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]