我的目标是创建一个包含人名的二叉搜索树。然后,我可以按姓名查找一个人的姓名,它将返回他们的姓名以及包含的其他信息
我有一些早期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)
我希望能够使用查找功能,并返回我要找的人
目前没有回答
相关问题 更多 >
编程相关推荐