長い間この問題に悩まされてきたので、助けを求める時が来ました。ほとんどすべてが機能します。ファイルを読み取り、データなどを入力します..プログラムは出力を提供せず、最後のifステートメントに何か問題があります..最後の3行は
root1.put(word1)
if root.exists(word1):
print(word1, end = " ")
値をツリーに入れます。次に、値「word1」がすでにそのツリーにあるかどうかを最初のツリーに対してチェックし、それが真の場合は単語を出力し、そうでない場合は続行します。このプログラムでは、空の出力が返されます。誰かが問題を見る可能性はありますか? 他のクラス ファイルは、すべての変数/パラメタに 1 がないだけで、ほとんど同じように見えます。
クラスファイル (root1)
class BintreeEN:
def __init__(self, data1):
self.left1 = None
self.right1 = None
self.data1 = data1
def put(self, data1):
if data1 < self.data1:
if self.left1 is None:
self.left1 = BintreeEN(data1)
else:
self.left1.put(data1)
else:
if self.right1 is None:
self.right1 = BintreeEN(data1)
else:
self.right1.put(data1)
def write(self):
if self.left1:
self.left1.write()
print(self.data1)
if self.right1:
self.right1.write()
def exists(self, data1):
if data1 < self.data1:
if self.left1 is None:
return None, None
return self.left1.exists(data1)
elif data1 > self.data1:
if self.right1 is None:
return None, None
return self.right1.exists(data1)
else:
return self.data1
プログラムファイル
#first tree
root = Bintree("root")
with open("word3.txt", "r", encoding = "utf-8") as file:
for row in file:
word = row.strip()
checklist = root.exists(word)
if checklist == word:
pass
else:
root.put(word)
#second tree
root1 = BintreeEN("root1")
with open('engelska.txt','r', encoding = "utf-8") as f:
for row in f:
onerow = row.split()
for rowz in onerow:
word1 = rowz.strip()
#HERE IT something thats wrong...
if root1.exists(word1):
pass
else:
root1.put(word1)
if root.exists(word1): #Check if value is in the first tree
print(word1, end = " ")