定义二叉树类,实现二叉树的插入、查找和赋值:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
class BinaryTree:
def __init__(self, root_obj):
self.key = root_obj
self.leftChild = None
self.rightChild = None
def insert_left(self, new_node):
if self.leftChild is None:
self.leftChild = BinaryTree(new_node)
else:
temp = BinaryTree(new_node)
temp.leftChild = self.leftChild
self.leftChild = temp
def insert_right(self, new_node):
if self.rightChild is None:
self.rightChild = BinaryTree(new_node)
else:
temp = BinaryTree(new_node)
temp.rightChild = self.rightChild
self.rightChild = temp
def get_right_node(self):
return self.rightChild
def get_left_node(self):
return self.leftChild
def set_root_val(self, obj):
self.key = obj
def get_root_val(self):
return self.key
# tree = BinaryTree('root')
# print(tree.get_left_node())
# tree.insert_left('left001')
# tree.insert_right('right001')
# tree.get_left_node().insert_left('left002')
# print(tree.get_left_node().get_left_node().get_root_val())
实现二叉树的前序、中序、后序递归与非递归遍历,实现二叉树的层次遍历:
#!/usr/bin/pyth