实现:
1、定义二叉树,二叉树的根节点值大于左子树节点值,小于右子树节点值
2、节点插入,每个子树相当与一个节点,节点拥有左节点和右节点
3、二叉树的前序,中序,后序遍历
#-*-coding:utf-8-*- class Node: def __init__(self, data): self.root = data self.left_node = None self.right_node = None class binaryTree: def __init__(self): self.tree = None; def addNode(self, data, currt_node): node = Node(data) if self.tree is None: self.tree = node else: if currt_node.root > data: if currt_node.left_node is None: currt_node.left_node = node else: self.addNode(data, currt_node.left_node) else: if currt_node.right_node is None: currt_node.right_node = node else: self.addNode(data, currt_node.right_node) def preorder(self, tree): # 先序遍历 if tree.root is not None: #先序遍历 #print(tree.root) if tree.left_node is not None: self.preorder(tree.left_node) #中序遍历 print(tree.root) if tree.right_node is not None: self.preorder(tree.right_node) #后序遍历 #print(tree.root) if __name__ == '__main__': btree = binaryTree() btree.addNode(5, btree.tree) btree.addNode(3, btree.tree) btree.addNode(7, btree.tree) btree.addNode(4, btree.tree) btree.addNode(8, btree.tree) btree.addNode(6, btree.tree) btree.preorder(btree.tree)