Lassen Sie uns sagen, ich habe eine Liste wie folgt:Wie eine flache Liste in einen binären Baum konvertieren
flat_list = [None, 10, 5, 15, None, None, 11, 22]
Ich weiß, dass der Algorithmus einen Baum aus einer nestled Liste für die Erstellung geht so:
def create_tree_from_nested_list(node_list):
if not node_list:
return node_list
d, l, r = node_list
tree = BinaryTree(d)
tree.set_left(create_tree_from_nested_list(l))
tree.set_right(create_tree_from_nested_list(r))
return tree
der Ausgang für den angezeigten Code wäre:
10
(l) 5
(r) 15
(l) 11
(r) 22
Wie würde ich mich über eine Funktion flache Listen in Bäume, so dass die linke diejenigen, die Schaffung werden an der Indexposition 2*i
gespeichert und die richtigen werden an der Indexposition 2 * i + 1
gespeichert und die Ausgabe ist die gleiche wie die Ausgabe für die verschachtelte Liste. Jede Hilfe wird geschätzt.
Für die Liebe von Guido! Stoppen Sie mit den Gettern und Setter. Dies ist nicht Java. –
Auf jeden Fall bekomme ich deine Frage nicht wirklich. Was ist die erwartete Ausgabe? Was wäre die entsprechende verschachtelte Liste? –
Es tut mir leid, ich hätte besser geklärt werden sollen. Die Ausgabe sollte für die verschachtelte Liste und die flache Liste identisch sein. –