Ich möchte ein Prädikat (Prolog) erstellen, das einen Baum nimmt und eine Liste von Listen zurückgibt, und jede Liste ist ein Baumpfad. Der Baum ist als Baum (Root, LeftTree, RightTree) definiert. Haben Sie bitte Vorschläge?Baumpfad in einer Liste von Listen
1
A
Antwort
4
Dieses recht ungewöhnlich ist (es ist häufiger für eine Beziehung zwischen einem Baum und einer flachen Liste aller Knoten beispielsweise zu fragen, für die DCGs eine gute Passform ist), vielleicht so:
tree_list(nil, []).
tree_list(tree(Node,Left,Right), [Lefts,Node,Rights]) :-
tree_list(Left, Lefts),
tree_list(Right, Rights).
Beispiel:
?- tree_list(tree(a,tree(b,nil,tree(d,nil,nil)),tree(c,nil,nil)), Ts).
Ts = [[[], b, [[], d, []]], a, [[], c, []]].
Diese Darstellung ist verschwenderisch (Sie wissen, dass alle nicht-leeren Listen 3 Elemente haben, also warum nicht einen ternären Begriff anstelle einer Liste verwenden?) und meiner Meinung nach unnötig (weil Sie schon die Baumdarstellung an erster Stelle), aber wer weiß, wofür es gut ist. ..
Verwandte Themen
- 1. 2. Listenelemente Fasst in einer Liste von Listen von Listen
- 2. Eindeutige Listen von einer Liste
- 3. Transponieren einer Liste von Listen
- 4. Drucken einer Liste von Listen
- 5. Aktualisieren einer Liste von Listen
- 6. Referenzieren einer Liste von Listen
- 7. Permutationen einer Liste von Listen
- 8. Lisp: Konsolidieren einer Liste von Listen in einer einzigen Liste?
- 9. rbind Datenrahmen in einer Liste von Listen
- 10. Suche in einer Liste innerhalb von Listen
- 11. Sortieren einer Liste von Listen in Python
- 12. Listen in einer Liste zusammenfügen?
- 13. Liste in Listen innerhalb von Listen
- 14. Anfügen einer Liste an eine Liste von Listen in R
- 15. Verketten Liste von Listen
- 16. Untermatrix einer Liste von Listen (ohne numpy)
- 17. Liste in Liste von Listen umwandeln
- 18. maximale Länge einer Spalte in einer Liste von Listen
- 19. path.remove, Binärer Baumpfad Summe
- 20. mindestens Liste von Listen
- 21. Wie Listen in einer Liste zip
- 22. Wie bekomme ich die zweite Hälfte einer Liste von Listen als Liste von Listen?
- 23. Prolog Listen in einer Liste vereinigen
- 24. Multiplikation von Kombinationen einer Liste von Listen in R
- 25. Erstellen von Datenrahmen aus einer Liste von Listen in R
- 26. R So entfernen Sie eine Liste von Listen aus einer Liste von Listen
- 27. Konvertieren eine Liste von Listen in ein Wörterbuch von Listen
- 28. Haskell, Liste von Listen mit einer bestimmten Form (Liste Verständnis)
- 29. Konvertieren einer Liste von Listen in ein Array in Python
- 30. Java Sortieren Liste von Listen