[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