私と私の友人は、Python 3.1 でプログラミングを行う学校の仕事をしていて、非常に行き詰っています。二分木をプログラミングしていますが、文を作成する方法ですべてのノードを順番に出力したい場合を除いて、正常に動作しています (すべての単語が順番に並んでいます)。私たちはどうやって進めるか手がかりを求めてインターネット中を探しており、このささいなことに2時間ほど取り組んできました. アドバイス/ヘルプは素晴らしいでしょう。
私たちのプログラム/二分木:
class Treenode:
def __init__(self, it = None, le = None, ri = None):
self.item = it
self.left = le
self.right = ri
class Bintree:
def __init__(self):
self.item = None
self.left = None
self.right = None
def put(self, it = None):
key = Treenode(it)
if self.item == None:
self.item = key
return
p = self.item
while True:
if key.item < p.item:
if p.left == None:
p.left = key
return
else:
p = p.left
elif key.item > p.item:
if p.right == None:
p.right = key
return
else:
p = p.right
else:
return
def exists(self, it):
key = it
p = self.item
if p == key:
return True
while True:
if key < p.item:
if p.left == None:
return False
else:
p = p.left
elif key > p.item:
if p.right == None:
return False
else:
p = p.right
else:
return
def isEmpty(self):
if self.item == None:
return True
else:
return False
def printtree (Treenode):
if Treenode.left != None:
printtree (Treenode.left)
print (Treenode.item)
if Treenode.right != None:
printtree (Treenode.right)
プログラムを実行すると、"bintree.Treenode object at 0x02774CB0" のような出力が得られますが、これは私たちが望んでいるものではありません。
これを実行してツリーを使用します。
import bintree
tree = bintree.Bintree()
print(tree.isEmpty()) # should give True
tree.put("solen")
print(tree.isEmpty()) # should give False
tree.put("gott")
tree.put("sin")
tree.put("hela")
tree.put("ban")
tree.put("upp")
tree.put("himlarunden")
tree.put("manen")
tree.put("seglar")
tree.put("som")
tree.put("en")
tree.put("svan")
tree.put("uti")
tree.put("midnattsstuden")
print(tree.exists("visa")) # should give False
print(tree.exists("ban")) # should give True
tree.printtree() # print sorted
また、最後から 2 番目の行では、「True」ではなく「None」が表示されますが、これは奇妙です。