Einzelnen Beitrag anzeigen

Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Algorithmenproblem: Baum in Liste speichern -> Vater

  Alt 18. Feb 2005, 18:40
Ein Baum ist eine Rekursive DatenStruktur. In deinem Beispiel, jedes Element hat ein eigenes Wert und noch 3 , 2 Kinder und 1 Eltern (Nur nuch UrEltern )
Ich wurde ein Element so Deklatieren :
Zitat:
struct tnode {
int Wert ; //beispeil
int Count;
struct tnode *Vater;
struct tnode *Links;
struct tnode *Rechts;
};
Ein Element hinzufühgen:

Zitat:
struct tnode *talloc(void)
{
return (struct tnode*)malloc(sizeof(struct tnode));
}

struct tnode *addtree(struct tnode *p,int w,struct tnode *Vater_)
{
if (p==NULL)
{
p = talloc();
p->Wert = w;
p->Count = 1;
p->Links = p->Rechts = NULL;
p->Vater = Vater_;
}
else
if (w=p->Wert) p->Count++;
else
if (w<p->Wert) p->Left = addtree(p->left, w, p);
else p->Rechts = addtree(p->Rechts,w, p);

return p;
}
Ein element Finden:
Zitat:
BOOL findnode(struct tnode *gefundene,struct tnode *anfangsnode, int w)
{
if (anfangsnode = NULL)
return FALSE;
if (anfangsnode->Wert == w)
/*GEFUNDEN*/
{
gefundene = anfangsnode;
return TRUE;
}
else
if (anfangsnode->Wert < w)
return findnode(gefundene, anfangsnode->Links,w);
else return findnode(gefundene, anfangsnode->Rechts,w);
}
So kannst du einfach zuerst finden was du willst und dann liest einfach wer Vater und Kinder sind.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat