Angenommen, ich habe zwei Werte: x1
und x2
.Erstellen Sie einen k-ary-Baum ohne wiederholte Werte
Mit einer einzigen Wurzel, wie alle Kombinationen von x1
und x2
mit einem k -ary-Baum zu bauen?
Beispiel:
#0 root
/ \
#1 x1 x2
|
#2 x2
Auf Stufe #1
Ich habe die ersten Elemente, x1
und x2
.
Auf Stufe #2
Ich habe x2
, so dass die Kombination x1x2
, haben aber nicht x1
, weil es ein wiederholt Kombination wäre (x2x1
, wir kümmern uns nicht um die Elemente hier zu bestellen).
Wenn ich mehr als zwei Elemente hätte, würde halten den Baum los, bis der Pegel auf die Anzahl der Elemente gleich minus 1.
Ich habe bereits die anfängliche #1
Ebene gebaut. aber wie erzeuge ich den Baum, ohne Kombinationen zu wiederholen? Mit anderen Worten, wie man verifiziert, wenn ich ein bestimmtes Element auf dem Baum in der performatic Weise nicht setzen sollte oder nicht. Es gibt einen bekannten Algorithmus dafür?
Zusätzliche Informationen: PHP
Was ist die Aufgabe, die Sie erreichen möchten? Um alle Kombinationen eines Satzes von Elementen unabhängig von der Reihenfolge aufzulisten? Müssen Sie wirklich k-ary Baum verwenden? – justhalf
@justhalf Ja, um alle Kombinationen eines Satzes von Elementen unabhängig von ihrer Reihenfolge aufzulisten. Ich brauche keine Bäume, aber es ist das erste, was mir in den Sinn kam. – Luiz
Dann denke ich, dass du diese Frage stattdessen stellen solltest. Ich denke, dass Bäume dafür keine gute Lösung sein können. Die übliche Lösung ist Rekursion, wie diese: https://stackoverflow.com/questions/31695772/generating-k-combinations-lexicographically – justhalf