我正在嘗試創建一個簡單版本的拼寫檢查,它需要一個.txt文件並比較每個單詞是否在字典中找到。我已經建立了將.txt文件轉換爲列表和將字典轉換爲列表的功能,但我拼命地在我的拼寫檢查函數中調用了我的已排序二叉查找樹來查找字典。這是其次是我的拼寫檢查功能BinarySearchTree類如何調用算法中的二叉搜索樹
class BinarySearchTree:
def __init__(self):
self.root = None
def insert(self,val):
if self.root == None:
self.root = BinaryNode(val)
else:
self.recursive_insert(root,val)
def recursive_insert(self,parent,val):
if parent.data < val:
if parent.right != None:
self.recursive_insert(parent.right,val)
else:
parent.right = BinaryNode(val)
else:
if parent.left != None:
self.recursive_insert(parent.left,val)
else:
parent.left = BinaryNode(val)
def dictionary_insert(self,text):
for word in text:
self.insert(word)
def search(self,val):
if self.recursive_search(self.root,val) != None:
return True
else:
return False
def recursive_search(self,parent,val):
if parent.data == val:
return parent
elif parent.data > val:
return self.recursive_search(parent.left,val)
else:
return self.recursive_search(parent.right,val)
這裏是我的拼寫檢查功能:
def spell_checker(text):
N = len(text)
misspelled = 0
for i in range(N):
if BinarySearchTree().search(text[i]) == True:
misspelled = misspelled
else:
misspelled = misspelled + 1
print text[i]
if misspelled == 0:
print "There are no spelling errors!"
任何幫助將不勝感激。
你的意思是 「掙扎」?你有錯誤嗎?意外的輸出? – jonrsharpe
當我通過BinarySearchTree.search引用調用recursive_search函數調用我在spell_checker – user3068647
中進行調用時,出現無類型'對象沒有任何屬性'數據的錯誤。然後:假設您調用recursive_search時使用了一個不在你的樹?當它落到一個沒有子節點的葉節點並且'parent.data'不等於'val'時會發生什麼? –