[Python-de] Re: Selbstorganisierender Binaerer Baum

Albert Hermeling Albert.Hermeling at t-online.de
Sam Dez 27 17:22:46 CET 2003


Am Samstag, 27. Dezember 2003 12:01 schrieb Uwe Hoffmann:
> Albert Hermeling wrote:

Hallo Uwe,

> >     def suchen(self, string):
> >         a=hash(string)
> >         b=hash(self.string)
> >         if a > b and self.lings:
> >             self.lings.suchen(string)
>
> 		return self.lings.suchen(string)

> die rekursiven aufrufe müssen immer etwas an den Aufrufer zurückgeben

danke jetzt funktioniert es.

Ich war allerdings auch nicht untaetig und habe selber noch ein biesschen 
rumexperimentiert und Folgende Loesung gefunden:

In der Methode __init__ das Attriebutt self.ausgabestring einbauen. In der 
Methode suchen  ein else: self.ausgabe() einfuegen und die Methode ausgabe so 
abaendern:

def ausgabe(self,a=None):
        if not self.app:
            self.ausgabestring=a
        else:
            b=getattr(self.app,"ausgabe")
            b(a)

wenn ich jetzt einen String suche gehe ich Folgendermassen vor 

node.suchen(string)
print node.ausgabestring

Das Funktioniert auch warum? So wie Du sagst muss ein rekursiver aufruf immer 
etwas an den Aufrufer zurueckgeben. 

Nach meiner Methode wird nur dem Rootknoten etwas zurueckgegeben. Alle Knoten 
die dazwischen liegen geben den String ja nur weiter ohne was am Attriebutt 
ausgabestring zu aendern.

Mit freundlichen Gruessen

Albert