实现树:节点链接法
同样可以用节点链接法实现树
每个节点保存根节点的数据项,以及指向左右子树的链接
定义一个BinaryTree类,成员key保存根节点的数据项,成员left/rightChild则保存指向左/右子树的引用(同样是BinaryTree对象).
代码实现:
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
根据r画出图示:
r = Binarytree('a')
r.insertLeft('b')
r.insertRight('c')
r.getRightChild().setRootVal('hello')
r.getLeftChild().insertRight('d')