Funktionen in C/C++
Geizhals » Forum » Programmierung » Funktionen in C/C++ (16 Beiträge, 16 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
....
Re(4): Funktionen in C/C++
Fly
09.03.2002, 18:58:31
Nun, wenn nicht isses ned ganz trivial 'n Sorttree zu verstehen. Vor allem, weil ich'n hier schlecht aufzeichnen kann.

Im Grunde genommen wird beim Eintragen in dem Tree bereits sortiert, das Auslesen is' dann im Endeffekt nur mehr 'n Abarbeiten der Struktur. Müsste so ähnlich wie das hier funktionieren (ich hab's mal eben aus'm Stegreif hingeklopft und ned kompeliert, keine Garantie also):

struct node {
  int value;
  node* lnode;
  node* rnode;
}


void insert (node* base, int newval)
{
  if (newvalvalue=newval;
      lnode->lnode=NULL;
      lnode->rnode=NULL;
      return;
    }
    insert (lnode, newval);
    return;
  }
  if (!rnode)
  {
    rnode=new node;
    rnode->value=newval;
    rnode->lnode=NULL;
    rnode->rnode=NULL;
    return;
  }
  insert (rnode, newval);
}

void read (node* base)
{
  if (lnode) read (lnode);
  printf ("%i", value);
  if (rnode) read (rnode);
}

Funktioniert allerdings nur, wenn ein Wert nicht mehrmals vorkommen darf. Falls doch wäre es praktisch, 'ne zusätzliche Variable im Knoten zu haben, die die Vielfachheit zählt und in der insert-routine wird abgeprüft ob die Zahl gleich der Zahl im Knoten ist, falls ja den Zähler inkrementieren und die Routine beenden.

Objektorientiert lässt sich's noch ein bisserl eleganter basteln, dann wird's aber auch ein wenig unübersichtlicher.


Shadows can be made real
if you kill in their name.
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung