파일의 단어가 포함 된 이진 검색 트리가 있으며 이제는 단어를 검색하고 싶습니다.이 단어의 길이와 횟수가 반환되어야합니다. 루트에서 시작하는 방법과 거기에서 진행하는 방법을 잘 모르겠습니다. 약간의 예를 든 약간의 설명이 많이 감사 할 것입니다.파이썬 : 이진 검색 트리에서 검색
나는 내 현재 코드 첨부하십시오 BST에 추가가를 넣어 그 값 이 있어야 할 곳에 검색하고 포함하는 것이
class Node:
def __init__(self, value, left=None, right=None):
self.left = left
self.right = right
self.value = value
self.count = 1
def add(self, value):
if self.value == value:
self.count += 1
elif value < self.value:
if self.left is None:
self.left = Node(value)
else:
self.left.add(value)
else:
if self.right is None:
self.right = Node(value)
else:
self.right.add(value)
def printTree(self):
if self.left is not None:
self.left.printTree()
print(str(self.value) + " " + str(self.count))
if self.right is not None:
self.right.printTree()
def processFileContent(file):
words = []
for line in file:
unprocessedWords = re.split(" ", line)
for word in unprocessedWords:
word = word.lower()
if word.isalpha():
words.append(word)
return words
def processFile():
file = open("text.txt", "r")
words = processFileContent(file)
file.close()
return words
def createTree(words):
if len(words) > 0:
tree = Node(words[0])
for word in words:
tree.add(word)
return tree
else:
return None
def main():
words = processFile()
tree = createTree(words)
tree.printTree()