Ich möchte eine Funktion definieren, die eine Liste der Tree-Knoten-Werte zurückgibt. Die Liste befindet sich in der Reihenfolge der Ebenen (von oben nach unten, von links nach rechts).Python-Liste von Python-Binärbaum
Zum Beispiel kann die Liste von oben wäre gezeigt Baum hergestellt: [2, 29, 4, 26, None, None, 2, None, None, None, None, None, None, 9, None, end].
Dies ist die Implementierung Binary Tree ist
class BinaryTree:
def __init__(self, data, left = None, right = None):
self.key = data
self.left = left
self.right = right
def insert(self, data):
node = self
while node is not None:
parent = node
if node.left is None:
parent.insert_left(data)
break
if node.right is None:
parent.insert_right(data)
break
node = node.left
def insert_left(self, data):
self.left = BinaryTree(data, left=self.left)
def insert_right(self, data):
self.right = BinaryTree(data, right=self.right)
def get_left_subtree(self):
return self.left
def set_left(self, tree):
self.left = tree
def set_right(self, tree):
self.right = tree
def get_right_subtree(self):
return self.right
def set_value(self, val):
self.key = val
def get_value(self):
return self.key
def create_string(self, indent):
string = str(self.key) + '---+'
if self.left:
string += '\n(l)' + indent + self.left.create_string(indent + ' ')
if self.right:
string += '\n(r)' + indent + self.right.create_string(indent + ' ')
return string
def __str__(self):
return self.create_string(' ')
http://stackoverflow.co m/questions/5262308/how-do-implementieren-a-Breite-zuerst-Traversal – pvg
das ist in Java obwohl –
Das Wichtige ist hier der Algorithmus. Du suchst nach der Breite-zuerst-Traversierung. Vielleicht möchten Sie überprüfen, wie sich das von dem unterscheidet, was Sie haben. – pvg