
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
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,
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


0