【发布时间】:2011-03-26 21:04:59
【问题描述】:
如何使用 python 从顶部开始逐级打印二叉树中的数据?
我对此很陌生,我不知道如何开始。
from collections import deque
class EmptyTree(object):
def isEmpty(self):
return True
def __str__(self):
return ""
class BinaryTree(object):
THE_EMPTY_TREE = EmptyTree()
def __init__(self, item):
self._root = item
self._left = BinaryTree.THE_EMPTY_TREE
self._right = BinaryTree.THE_EMPTY_TREE
def isEmpty(self):
return False
def getRoot(self):
return self._root
def getLeft(self):
return self._left
def getRight(self):
return self._right
def setRoot(self, item):
self._root = item
def setLeft(self, tree):
self._left = tree
def setRight(self, tree):
self._right = tree
def removeLeft(self):
left = self._left
self._left = BinaryTree.THE_EMPTY_TREE
return left
def removeRight(self):
right = self._right
self._right = BinaryTree.THE_EMPTY_TREE
return right
def __str__(self):
"""Returns a string representation of the tree
rotated 90 degrees to the left."""
def strHelper(tree, level):
result = ""
if not tree.isEmpty():
result += strHelper(tree.getRight(), level + 1)
result += "| " * level
result += str(tree.getRoot()) + "\n"
result += strHelper(tree.getLeft(), level + 1)
return result
return strHelper(self, 0)
【问题讨论】:
-
如果您还没有开始编写遍历,您应该阅读您的书(或其他参考,如Wikipedia),他们会尝试。
-
我看过但找不到任何有用的东西。
标签: python tree binary-tree