code
class BinaryTree: def __init__(self, rootObj): self.key = rootObj self.leftChild = None self.rightChild = None def insertLeft(self, newNode): if self.leftChild == None: self.leftChild = BinaryTree(newNode) else: t = BinaryTree(newNode) t.leftChild = self.leftChild self.leftChild = t def insertRight(self, newNode): if self.rightChild == None: self.rightChild = BinaryTree(newNode) else: t = BinaryTree(newNode) t.rightChild = self.rightChild self.rightChild = t def getRightChild(self): return self.rightChild def getLeftChild(self): return self.leftChild def setRootVal(self, obj): self.key = obj def getRootVal(self): return self.key # 树的前序遍历 # 树的后序遍历以及中序遍历见ParseTree.py def preorder(self): print(self.key) if self.leftChild: self.leftChild.preorder() if self.rightChild: self.rightChild.preorder() ‘‘‘ 以下为测试数据, 去掉 # 即可 ‘‘‘ r = BinaryTree(‘a‘) print(r.getRootVal())#a print(r.getLeftChild()) r.insertLeft(‘b‘) print(r.getLeftChild()) print(r.getLeftChild().getRootVal())#b r.insertRight(‘c‘) print(r.getRightChild()) print(r.getRightChild().getRootVal())#c r.getRightChild().setRootVal(‘hello‘) print(r.getRightChild().getRootVal())#hello print(r.getLeftChild().getRootVal())#b print("*"*10) print("preorder",r.preorder())
原文:https://www.cnblogs.com/sea-stream/p/13767642.html