48、数据结构与算法Python:树的链表实现

本文详细介绍了如何使用节点链接法在Python中实现二叉树数据结构。内容包括BinaryTree类的定义、插入左右子节点的方法以及完整的操作示例,适合学习数据结构和算法的开发者。

实现树:节点链接法

同样可以用节点链接法来实现树

每个节点保存根节点的数据项,以及指向左右子树的链接
 

定义一个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 = BinaryTree('a')
r.insertLeft('b')
r.insertRight('c')
r.getRightChild().setRootVal('hello')
r.getLeftChild().insertRight-('d')

 

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: