Ergebnis 1 bis 11 von 11

Thema: [C] Binär-Baum Wurzel festlegen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    [C] Binär-Baum Wurzel festlegen

    Ok, folgendes Problem:

    Ich habe in C die Datenstruktur eines binären Baumes wie folgt gegeben:
    Code:
    typedef struct _tree {
            int v;
            struct _tree *left , *right, *parent;
            }TreeRec, *Tree;
    *left und *right zeigen dabei stets auf den linken/rechten Knoten des aktuellen Knotens und *parent auf den Vorgänger des Knotens (sofern er existiert).

    Zudem eine Funktion, die einen Baum initialisiert/konstruiert:
    Code:
    Tree cons(int v, Tree tl , Tree tr) {
        Tree tmp;
        tmp =(Tree) malloc(sizeof(TreeRec));
        if(tmp == NULL) {printf("{cons} Memory full\n");} 
        else {
            tmp ->v = v;
            tmp ->left = tl;
            tmp ->right = tr;
            tmp ->parent = NULL;
            if(tl) {tl->parent = tmp;} //ist der linke Teilbaum!=NULL, so wird tmp als sein Parent gesetzt
            if(tr) {tr->parent = tmp;}// analog
            }
        return tmp;
        }
    Mein Problem dabei ist, dass ich gerne eine Struktur *root definieren möchte, die stets auf den Wurzelknoten des Baums zeigt. Allerdings habe ich absolut keine Ahnung, wie ich root in diesem Fall definieren müsste, damit das klappt.
    Ich hoffe, jemand kann mir bei meinem Problem helfen.

    EDIT: Ich möchte darauf aufbauend einen Algorithmus schreiben, der einen Baum rotiert, um die Eigenschaften eines AVL-Baumes wiederherzustellen. Dabei muss in einigen Fällen auch der Wurzelknoten ausgetauscht werden.

    Geändert von Oestinator (29.05.2011 um 18:43 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •