[PIPython] problema con i nodi

Ernesto e.picardi
Ven 19 Nov 2004 15:16:54 CET


Ciao a tutti,

Ho una lista di nodi come la seguente:

Nodo1=Nodo("A",0.1,None,None,1)
Nodo2=Nodo("B",0.2,None,None,1)
Nodo3=Nodo("C",0.3,None,None,1)
Nodo4=Nodo("D",0.4,None,None,1)
Nodo6=Nodo("nodo6",0.2,Nodo1,Nodo2,0)
Nodo7=Nodo("nodo7",0.3,Nodo3,Nodo4,0)
Nodo8=Nodo("nodo8",0.1,Nodo6,Nodo7,0)
Nodo5=Nodo("E",0.5,None,None,1)
Nodo9=Nodo("Root",None,Nodo8,Nodo5,None).

dove il Nodo9 è la radice. Vorrei sostituire ciascun nodo con il suo
specifico valore, partendo dalla radice, in modo da ottenere un albero
uguale al seguente:

Albero=Nodo(9,None,Nodo(8,0.01,Nodo(6,0.01,Nodo(1,0.01,None,None,1),Nodo(2,0
.01,None,None,1),0),Nodo(7,0.01,Nodo(3,0.01,None,None,1),Nodo(4,0.01,None,No
ne,1),0),0),Nodo(5,0.01,None,None,1),None)

La principale difficoltà è che il valore di ciascun nodo è un'istanza in
accordo alla seguente classe:

class Nodo:
    '''definisci la struttura del nodo'''
    def __init__(self, contenuto, br=None, sinistra=None, destra=None,
tip=None,seq=None):
        self.c = contenuto       #  node name
 self.b = br              # branch length
        self.s = sinistra         # left
        self.d = destra      # rigth
 self.t = tip         # is 1 for a tip or 0 for other nodes
 self.seq = seq

Potreste suggerirmi che strada prendere per ottenere Albero? Vorrei usare la
ricorsione ma ho dei problemi.
 Grazie a tutti in anticipo

Ernesto




More information about the Python mailing list