标签:return pos 情况下 color ESS adt .com 举例 first
?叉树的遍历def preorder(self, root): """递归实现先序遍历""" if root == None: return print root.elem self.preorder(root.lchild) self.preorder(root.rchild)
中序遍历 在中序遍历中,我们递归使?中序遍历访问左?树,然后访问 根节点,最后再递归使?中序遍历访问右?树 左?树->根节点->右?树
def inorder(self, root): """递归实现中序遍历""" if root == None: return self.inorder(root.lchild) print root.elem self.inorder(root.rchild)
后序遍历 在后序遍历中,我们先递归使?后序遍历访问左?树和右? 树,最后访问根节点 左?树->右?树->根节点
def postorder(self, root): """递归实现后续遍历""" if root == None: return self.postorder(root.lchild) self.postorder(root.rchild) print root.elem
思考: 哪两种遍历?式能够唯?的确定?颗树???
?度优先遍历(层次遍历)
从树的root开始,从上到下从从左到右遍历整个树的节点
def breadth_travel(self): """利?队列实现树的层次遍历""" if root == None: return queue = [] queue.append(root) while queue: node = queue.pop(0) print node.elem, if node.lchild != None:
queue.append(node.lchild) if node.rchild != None: queue.append(node.rchild)[/size][/font]
[font=微软雅黑][size=3]
标签:return pos 情况下 color ESS adt .com 举例 first
原文地址:http://blog.51cto.com/13517854/2325965