Array-Baum traversieren um Pfade zu erhalten
Danny
- programmiertechnik
Hallo,
ich habe da mehrere Bretter vorm Kopf... ?8|
Gesucht wird ein möglichst einfacher Algorithmus, um die Inhalte eines Baumes in Pfadform zu erhalten.
Eine Lösung, bzw. Tipp in PHP nicht schlecht. Im Prinzip kann es aber auch eine andere Sprache sein, um das Prinzip zu erläutern.
Ist die Tiefe unbekannt, geht sowas doch nur mit Rekursion, oder?
Eingabe ist:
basis = c:\
dir = array
(
[0] => datei_1.txt
[hallo] => array
(
[0] => datei_1.txt
[1] => datei_2.txt
[test] => array
(
[0] => datei_1.txt
)
)
[welt] => array
(
[0] => datei_1.txt
)
)
Ausgabe soll sein:
c:\datei_1.txt
c:\hallo\datei_1.txt
c:\hallo\datei_2.txt
c:\hallo\test\datei_1.txt
c:\welt\datei_1.txt
Schönen Tag noch (auch wenn das Wetter gerade umschlägt :) !
Danny
Hi,
ich habe da mehrere Bretter vorm Kopf... ?8|
es gibt da ein hervorragendes Hackertool bei Obi, namens "Axt" ;-)
Gesucht wird ein möglichst einfacher Algorithmus, um die Inhalte eines Baumes in Pfadform zu erhalten.
Ist die Tiefe unbekannt, geht sowas doch nur mit Rekursion, oder?
Rekursion ist ideal geeignet. Eine brauchbare Datenstruktur hast Du auch schon gefunden (wobei es wenig bringt, nur manchmal assoziative Arrays einzusetzen - entweder immer oder nie). Wo also liegt Dein Problem?
Cheatah
Grüß Dich, Cheatah,
das mit der Axt ist gut, muß man sich merken ;)
Wo mein Problem liegt? Äh, seit wann erwarten Funktionen zum Laden von Dateien ein Array als Argument für den Dateinamen?
Aber trotzdem danke für den Hinweis. Das assoziative Array brauche ich nämlich gar nicht, es wird in einer Filesystem-Klasse erzeugt.
Aha! Na dann werde ich eben eine andere Klasse, bzw. Funktion suchen, die gleich die Pfade zurückgibt...
Könnte aber sein, dass ich die Array-Form doch irgendwann mal brauche, z.B. für eine dynamische Sitemap oder so. Never say never! ;)
Gruß,
Danny
Hi,
Wo mein Problem liegt? Äh, seit wann erwarten Funktionen zum Laden von Dateien ein Array als Argument für den Dateinamen?
Du willst aus Deiner Datenstruktur eine Liste von gültigen Dateinamen machen. Wie Du diese dann verwendest, steht auf einem zweiten Blatt Papier.
Aha! Na dann werde ich eben eine andere Klasse, bzw. Funktion suchen, die gleich die Pfade zurückgibt...
Tipp: (aktueller) Basepath als Funktionsargument.
Cheatah