myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

binärer Baum in Python mit Kompositum

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 05.12.10, 16:16   #1
voll-hoast
hoastig
 
Benutzerbild von voll-hoast
 
Registriert seit: Jan 2010
Beiträge: 218
Bedankt: 21
voll-hoast sollte auf gnade hoffen | -28 Respekt Punkte
Standard binärer Baum in Python mit Kompositum

Hallo allerseits!

Ich bin gerade dabei einen binäre Baum in Python zu programmieren.
Das ganze basiert auf einem Kompositum.

Es gibt eine Abstrakte Oberklasse "Baumelement" für die beiden Abschlüsse ( "AbschlussL" und "AbschlussR". Außerdem noch eine Klasse "Knoten" und "Baum"
Jetzt habe ich mich mal an der Methode "einfuegen" versucht aber es will eifnach nicht klappen. Ich muss ja am Anfang vergleichen ob mein einzufügendes element > oder < meiner wurzel ist. Doch genau immer mit dieser wurzel scheitere ich bzw. bringt er einen Fehler egal was ich mache. Wie könnte ich das mit der wurzel geschickt lösen?

Wäre wirklich sehr dankbar für Hilfe, da ich langsam echt keinen Nerven mehr hab

Code:
# -*- coding: cp1252 -*-
class Baumelement(object):
    "Abstrakte Oberklasse für Knoten und Abschluss"
    pass

class AbschlussL(Baumelement):
    def __init__(self):
        pass

    def einfuegen(self,element,altKnot,abschluss):
        altKnot.nachfolger = Knoten(element, self)

    def laengeGeben(self):
        pass

    def Info(self):
        pass


class AbschlussR(Baumelement):
    def __init__(self):
        pass

    def einfuegen(self,element,altKnot,abschluss):
        altKnot.nachfolger = Knoten(element, self)

    def laengeGeben(self):
        pass

    def Info(self):
        pass


class Knoten(Baumelement):
    "Klasse implementiert Baumelemente"

    def __init__(self,element, nachfolgerL, nachfolgerR):

        self.element = element
        self.nachfolgerL = nachfolgerL
        self.nachfolgerR = nachfolgerR
        
        

    def einfuegen(self, element, altKnot, abschlussL, abschlussR):
        if self.nachfolgerL < altKnot.nachfolger:
            self.nachfolgerL.einfuegen(element, self, abschlussL)

        else:
            self.nachfolgerR.einfuegen(element, self, abschlussR)

        if self.nachfolgerR > altKnot.nachfolger:
            self.nachfolgerR.einfuegen(element, self, abschlussR)

        else:
            self.nachfolgerL.einfuegen(element, self, abschlussL)

        

    def laengeGeben(self):
        pass

    def Info(self):
        pass

class Baum(object):
    "KLasse implemenitiert Baum"

    def __init__(self):

        self.abschlussL = AbschlussL()
        self.abschlussR = AbschlussR()
        self.nachfolgerL = AbschlussL
        self.nachfolgerR = AbschlussR
        self.wurzel = wurzel
        
        
        

        print "Neuer Baum wurde erfolgreich erzeugt!"
        print " Bitte weitere Elemente einfuegen!"

    
    """def wurzelEinfuegen (self,element):

        if self.wurzel == None:
            self.wurzel = wurzel(element)"""


    def einfuegen(self, element):
        "Einfuegen eines Elements in den Baum"

        

    
        if element == wurzel:
            print "Element existiert bereits"
            False
            
        if element < wurzel:
            self.nachfolgerL.einfuegen(element, self)
        else:
            self.nachfolgerR.einfuegen(element, self)
        

    def laengeGeben(self):
        "gibt Anzahl der Elemente im Baum an"
        pass

    def Info(self):
        pass


ba = Baum()
wurzel = Knoten( 'test')
LG voll-hoast
__________________
Bedanken schadet nicht
voll-hoast ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr.


Sitemap

().