Hallo, habe ein nicht ganz triviales Problem zu lösen:
Ich muss eine Tabelle (siehe unten) mit zwei Spalten wie folgt auslesen:
Ich fange bei Spalte 1 (beispielsweise bei A) an und muss als nächstes nachsehen, was in Spalte 2 steht (B). Mit dem Ergebnis (B) suche ich wieder in Spalte 1 und hole mir das Ergebnis aus Spalte (2).....
Das ganze wird dadurch kompliziert, das keine Eineindeutigkeit besteht. C in Spalte 1 führt auf 2 Pfade (D und F), die beide zu verfolgen sind,... bis der letzte Eintrag erreicht ist. Es können auch mehr als 2 Pfade auftreten. Es ist immer egal, welcher Pfad zuerst verfolgt wird.
Am Schluss möchte ich die Reihenfolge der so ermittelten Buchstaben in einer internen Tabelle haben.
Eine Endlosschleife kann definitiv ausgeschlossen werden, die Einträge in der Tabelle schließen dies aus.
Spalte1 Spalte2
----------------------
A B
B C
C D
D E
C F
....
X Y
Von der Sache handelt es sich um das Auslesen einer beliebigen Baumstruktur, (wo nicht alle "Äste" gelesen werden).
Ich habe begonnen, eine entsprechende Methode in ABAP zu schreiben, "hänge" aber nun. Ist das Problem nur rekusiv zu erschlagen?
Wie würde so etwas aussehen?
Vielen Dank schon jetzt für die Unterstützung
Jörg
das könnte so gehen, ich habe es aber nicht ausprobiert.
Du hast eine Tabelle resutat und eine Tabelle Merken, die zuerst das Paar (A/B) enthält.
Do solange Merken nicht leer.
Hänge letzes(!) Element von Merken in Resultat an und lösche es aus Merken.
Hänge alle abhängigen Elemente in Merken hinten an (falls vorhanden) .
enddo.
Merken sollte jetzt folgenden Verlauf haben:
Start: (A/B)
1 Schritt: (B/C)
2. Schritt: (C/F);(C/D) diese Reihenfolge mal unterstellt.
3. Schritt: (C/F);(D/E)
4. Schritt: (C/F)
...
Damit entsteht genau Deine Reihenfolge.
Gruß Matthes