Python - BST的错误搜索

时间:2017-11-28 18:08:28

标签: search binary-search-tree python-3.6 nonetype

我遇到了BST(二进制搜索树)或西班牙语ABB的问题。我的问题是西班牙语中的功能搜索()或buscar()不起作用。我不知道我做错了什么。

以下是代码:

#TAD de Árbol Binario de Búsqueda
class ABB(object):
	def __init__(self, data):
	    self.right = None 
		self.left = None 
		self.data = data 

	def insert(self, data):
		if self.data: 
			if data < self.data: 
				if self.left == None: 
					self.left = ABB(data) 
				else: 
					self.left.insert(data) 
			elif data > self.data: 
				if self.right == None: 
					self.right = ABB(data) 
				else: 
					self.right.insert(data) 
		else: 
			self.data = data 

	def buscar(self, x):
		while x != self.data and self.data != None:
			if self.data < x:
				self.left.buscar(x)
			else:
				self.right.buscar(x)
		if self.data == x:
			return True
		if self.data == None:
			return False

n = ABB(8)
n.insert(3)
n.insert(10)
n.insert(1)
n.insert(6)
n.insert(4)
n.insert(7)
n.insert(14)
n.insert(13)
print("existe?",n.buscar(22))

如果搜索到的号码存在与否,则应该返回true或false。在这两种情况下都没有发生。 错误消息是:

AttributeError: 'NoneType' object has no attribute 'buscar'

0 个答案:

没有答案