前两天写了点关于python数据结构的小程序,今天就整个稍微难点的(自己感觉)----- 二叉树。依稀记得当年,师兄教我这个东西,我怎么都感觉别扭,现在自己写出来,才感觉时间过的真快。不废话了,直接上代码:
# !/usr/bin/env python
# -*- coding : utf-8 -*-
class Node:
def __init__(self, data, root,left, right):
self.data = data
self.root = root
self.left = left
self.right = right
class BinaryTree:
def __init__(self, root = None):
self.root = root
def create(self, pList): #创建二叉树
#生成父节点
self.root = Node (pList[0],None,None, None)
for i in pList[1:]: #使用insert方法帮助创建
self.insert (i, self.root)
#由于python表面不支持重载,故采用默认参数
def insert(self,data,root_node = None):
if root_node.data == data: #插入数据与节点数据相等时,直接返回
return
if root_node.data > data: #节点数据大于插入数据
if root_node.left is None: