Python - Arbol binario

 
Vista:
sin imagen de perfil

Arbol binario

Publicado por sergi (9 intervenciones) el 16/05/2015 19:37:58
Hola, estoy haciendo un programa en Python que tenga un metodo main donde cree un árbol binario y vaya añadiendo cada palabra en cada nodo del árbol
las palabras son de tipo Word, donde se guarda la linea donde aparece y la palabra.
Este es el arbol binario que he implementado, el metodo insert no se ejecuta bien en la segunda palabra y no se porque

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class BTree(object):
 
	def __init__(self,val=None,left=None,right=None):
		if val==None:
			self._root=None
		elif left==None and right==None:
			self._root=Node(val)
		elif left==None and right!=None:
			self._root=Node(item,None,right._getRoot())
		elif left!=None and right==None:
			self._root=Node(item,left._getRoot())
		else:
			self._root=Node(val,left._getRoot(),right._getRoot())
 
	def setRoot(self,word):
		if self._root!=None:
			self._root=Node(word,self._root.getLeft(),self._root.getRight())
		else:
			self._root=Node(word)
 
	def insert(self,word):
		if self._root!=None:
			q=Queue()
			q.enqueue(self._root)
			done=False
			while done==False:
				node=q.dequeue()
				if node.getLeft()==None:
					node.setLeft(word)
					done=True
				if node.getRight()==None:
					node.setRight(word)
					done=False
				q.enqueue(node.getRight())
				q.enqueue(node.getRight())
		else:
			self.setRoot(word)


En el metodo main, tengo abierto el fichero y las lineas leidas, pero no se como hacer para que me diga la linea de cada palabra
Muchas gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder