Поскольку вы устанавливаете self.root.data = '*'
в функции CreateTree
, выполнив
это self.root.data = raw_input("Enter data,'*' means empty: ")
. И чтобы завершить запрос ввода, вы должны ввести '*'
в конце. Итак, последнее значение, которое имеет ваш self.root.data
, равно '*'.
Попробуйте это
print self.root.data
root.data = raw_input("Enter data,'*' means empty: ")
print self.root.data
if root.data == '*':
return
и это
def CreateTree(self,root):
print self.root.data
root.data = raw_input("Enter data,'*' means empty: ")
print self.root.data
if root.data == '*':
return
self.root.left = Node()
self.root.right = Node()
self.CreateTree(self.root.left)
self.CreateTree(self.root.right)
def PreOrder(self, root):
print root
print self.root
print self.root.data
if self.root != None:
if self.root.data != '*':
print self.root.data,
PreOrder(self, self.root.left)
PreOrder(self, self.root.right)
else:
print 'what the hell'
if __name__ == '__main__':
t = Node(10,Node(),Node())
print t.data
bt = BTree(t)
bt.CreateTree(t)
bt.PreOrder(t)
чтобы знать, где это пошло не так.