[PIPython] operazioni sugli alberi
Ernesto
e.picardi
Ven 19 Nov 2004 15:16:54 CET
Ciao a tutti,
ho un albero binario del tipo:
_____ 3
5_| ______ 2
|__4_|
|_____ 1
Ho definito una classe Nodo come riportato nel libro "How to think like ..."
(cap 20) ed una funzione per attraversare l'albero in preordine
class Nodo:
def __init__(self, contenuto, br=None, sinistra=None, destra=None,
tip=None):
self.c = contenuto
self.b = br # lunghezza del ramo
self.s = sinistra # nodo di sinistra
self.d = destra # nodo di destra
self.t = tip # is 1 for a tip or 0 for other nodes
def __str__(self):
return str(self.c)
def visit(Nodo):
print Nodo.c
if Nodo.s != None:
visit(Nodo.s)
if Nodo.d != None:
visit(Nodo.d)
Il tutto funziona regolarmente, nel senso che riesco ad attraversare
l'albero in modo corretto, solo che vorrei far effettuare delle operazioni
ogni qual volta un nodo viene visitato. In poche parole, ho una stringa che
funziona da radice, nodo 5, questa viene duplicata ed assegnata ai nodi 3 e
4. Poiche' il nodo 3 è una foglia, la visita termina, ma continua al nodo 4,
dove la stringa assegnata viene nuovamente duplicata ed inviata ai nodi 1 e
2.
Come posso fare? Ci sono dei prototipi scritti in C ma non li capisco!
Potreste suggerirmi qualche riferimento dove trovare qualcosa di simile?
Grazie
Ernesto
More information about the Python
mailing list