如何“刷新”此代码,使节点包含来自其他类的数据?

2024-03-29 15:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是创建一个包含人名的二叉搜索树。然后,我可以按姓名查找一个人的姓名,它将返回他们的姓名以及包含的其他信息

我有一些早期BST的代码,我只需要想想如何更改它

class Node:
    def __init__(self, val):
        self.ppl = val
        self.leftChild = None
        self.rightChild = None

    def get(self):
        return self.val

    def set(self, val):
        self.val = val

    def getChildren(self):
        children = []
        if (self.leftChild != None):
            children.append(self.leftChild)
        if (self.rightChild != None):
            children.append(self.rightChild)
        return children


class BST:
    def __init__(self):
        self.root = None

    def setRoot(self, ppl: Person):
        self.root = Node(val)

    def insert(self, val):
        if (self.root is None):
            self.setRoot(val)
        else:
            self.insertNode(self.root, val)

    def insertNode(self, currentNode, val):
        if (val <= currentNode.val):
            if (currentNode.leftChild):
                self.insertNode(currentNode.leftChild, val)
            else:
                currentNode.leftChild = Node(val)
        elif (val > currentNode.val):
            if (currentNode.rightChild):
                self.insertNode(currentNode.rightChild, val)
            else:
                currentNode.rightChild = Node(va;)

    def find(self, val):
        return self.findNode(self.root, val)

    def findNode(self, currentNode, val):
        if (currentNode is None):
            return False
        elif (val == currentNode.val):
            return True
        elif (val < currentNode.val):
            return self.findNode(currentNode.leftChild, val)
        else:
            return self.findNode(currentNode.rightChild, val)```


class Person:

    listOfF = []

    def __init__(self, name: str):
        self.uid = uuid4()
        self.name = name
        self.friends = set() # figure out typing for set
        self.mutual_friends = set()
        self.listOfF.append(self.name)

我希望能够使用查找功能,并返回我要找的人


Tags: selfnonenodereturnifdefvalroot