python实现二叉树及插入,遍历操作

来源:互联网 发布:淘宝卖家如何打印订单 编辑:程序博客网 时间:2024/06/05 09:28

coding:utf-8

”’
author:xzfreewind
”’

构建二叉树的树形结构

class TreeNode(object):
def init(self,value,left=None,right=None):
self.vaule = value
self.left = left
self.right = right

构建二叉树

class binary_tree(object):
#初始化二叉树
def init(self):
self.root = TreeNode()

#插入数据def add_date(self,data):    node = TreeNode(data)    #如果二叉树为空,则将数据写入根节点    if self.isEmpty():        self.root = node    else:   #如果二叉树非空,则通过列表遍历其左右节点,直至有节点为空,并写入        tree_node = self.root        queue = []        queue.append(tree_node)        while queue:            tree_node = queue.pop()            if tree_node.left == None:                tree_node.left = node                return            if tree_node.right == None:                tree_node.right = node                return            else:                queue.append(tree_node.left)                queue.append(tree_node.right)#先序遍历def pre_map(self,root):    if root == None:        return    print root.value    self.pre_map(root.left)    self.pre_map(root.right)#中序遍历def middle_map(self,root):    if root == None:        return    self.middle_map(root.left)    print root.value    self.middle_map(root.right)#后序遍历def later_map(self,root):    if root == None:        return    self.later_map(root.left)    self.later_map(root.right)    print root.value
原创粉丝点击