Avatar billede appel Novice
04. februar 2003 - 21:47 Der er 5 kommentarer og
1 løsning

returnering af pointer

Hvorfor returnere denne funktion den samme pointer som den bliver kaldt med allerførste gang:

node* lookup(node* someNode,int key){
  if (someNode->key<key){
    lookup((node*)someNode->right,key);
  }
  else if (someNode->key>key){
    lookup((node*)someNode->left,key);
  }
  else if (someNode->key==key){
      return someNode;
  }
}
Avatar billede appel Novice
04. februar 2003 - 21:49 #1
skal måske nævne at node er en struct som ser således ud:
typedef struct node *nodePointer;
typedef struct node{
  int key;
  int value;
  nodePointer* left;
  nodePointer* right;
}node;
Avatar billede soreno Praktikant
04. februar 2003 - 21:53 #2
Sikkert fordi "someNode->key==key" (!)

Har du prøvet at lave nogle printf'er ?
altså f.eks.
node* lookup(node* someNode,int key){
  printf("nodekey is [%i] - search key is [%i]\n", someNode->key, key);

  if (someNode->key<key){
    lookup((node*)someNode->right,key);
  }
  else if (someNode->key>key){
    lookup((node*)someNode->left,key);
  }
  else if (someNode->key==key){
      return someNode;
  }
}
Avatar billede arne_v Ekspert
04. februar 2003 - 21:53 #3
Skulle det ikke være:

node* lookup(node* someNode,int key){
  if (someNode->key<key){
    return lookup((node*)someNode->right,key);
  }
  else if (someNode->key>key){
    return lookup((node*)someNode->left,key);
  }
  else if (someNode->key==key){
      return someNode;
  }
}

[2 x return indsat]

?
Avatar billede appel Novice
04. februar 2003 - 21:56 #4
Hey Arne_V u r my man!

Cool det virker... Egentlig klart, når det er en rekursiv funktion, men jeg havde set mig totalt blind på det... tak :-)
Avatar billede arne_v Ekspert
05. februar 2003 - 18:41 #5
Så du vil acceptere mit svar ?
Avatar billede appel Novice
06. februar 2003 - 03:19 #6
Jeps. Naturligvis.
Min fejl.
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