Ich brauche, um zu erstellen Sie eine benutzerdefinierte Struktur die Daten-Struktur mit JavaScript
Ich blickte auf das grundlegende format für eine Baumstruktur in javascript:
function Tree(parent, child, data) {
this.parent = parent;
this.children = child || [];
this.data = data;
this.addNode ...
this.addChild ...
}
das problem, das ich habe, ist ein Baum, der "lange" mit dabei. Die Daten, die ich verwende, ist eine Liste von Straßen auf eine Spur, die ist fast ein gerader Weg, aber es gibt ein paar kleine Risse in den Weg, die Daten würde folgendermaßen Aussehen:
A ->
B ->
C ->
D -> E,F
E ->
G ->
H
F -> I
I -> J
J -> K,L
K ->
M ->
N
L -> O
O -> P
Ich würde gerne vermeiden, dass code, der wie folgt aussieht:
tree.children[0].children[0].children[0].addNode("E");
tree.children[0].children[0].children[0].push("F");
also eine meiner Fragen ist das traversieren des Baumes, indem Sie einfach sagen?
node = tree;
while(node.children != null)
node = node.children[0];
wenn Ihr mir helfen könntet, ich würde es zu schätzen wissen, Dank,
mathacka
- Haben Sie versucht, Ihren code?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den meisten managable Ansatz für diese Struktur ist IMHO die Verwendung von verknüpften Listen.
Durchlaufen Kinder, tun Sie etwas wie dieses:
(Bearbeiten) wird Das "Node"-Objekt ist nur ein Beispiel und es sollte aussagekräftige Eigenschaften Hinzugefügt werden. Mit dieser als Basis für alle Objekte im Baum, kann es Tiefe, ohne dass es komplexer. Sie können weitere Funktionen hinzufügen, wie GetChildByName, RemoveChild, und so weiter.
JS:
Haben Sie einen Blick auf diesen Ansatz auf, wie zum erstellen von Baum-Strukturen von SQL-Abfragen:
http://blog.tcs.de/creating-trees-from-sql-queries-in-javascript/
Wenn Sie wollen, um einige der Berechnung auf alle Knoten im Baum dann könnte man hinzufügen
traverse
Funktion, um Ihren Knoten im Baum, so etwas wie:Alternativ, wenn Sie etwas spezifisches wie die Manipulation der Baum oder der Suche nach einem bestimmten Knoten, dann möchten Sie vielleicht, um Blick auf die Visitor Design Pattern.