Avatar billede dpp83 Nybegynder
25. maj 2004 - 13:12 Der er 2 kommentarer og
1 løsning

Søgning i binært træ

Hej. Jeg har et binært søgetræ opbygget af noder af typen:
Class PersonNode
{
PersonNode(person p): personData(p);
Person personData;
PersonNode* venstre;
PersonNode* højre;
};

Dertil en klasse Person som ser således ud:
Class Person
{
Person(string Navn, int Alder);

int HentAlder();
string HentNavn();
}

Mit sp. er hvordan jeg definere en funktion 'void mindsteAlder(int Alder)' hvis formål det er at retunere den mindste alder der forekommer i træet.

Pft
Avatar billede segmose Nybegynder
25. maj 2004 - 13:34 #1
// utestet
// har anden prototype end dig.
// rootNode er din rod node.

int mindsteAlder(PersonNode *node = rootNode) {
  if (!node)
    return MAX_INT;

  int alder = node->HentAlder();

  if (venstre)
    alder = min(alder, mindsteAlder(venstre));
  if (højre)
    alder = min(alder, mindsteAlder(højre));

  return alder;
}
Avatar billede dpp83 Nybegynder
25. maj 2004 - 13:46 #2
Tak. Prøver at få det til at fungere.
Lige et spørgsmål da jeg er ret ny. Hvad er meningen med:
if (!node)
return MAX_INT; //?
Avatar billede segmose Nybegynder
25. maj 2004 - 13:53 #3
Hvis du ikke har nogen noder får du INT_MAX (ikke MAX_INT) return dvs. den maximale værdi int kan have, så kan du enten checke på denne fejlværdi eller bare vise det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester