Retourner 2 valeur en C

Résolu/Fermé
didi - 15 avril 2009 à 11:43
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 oct. 2011 à 19:59
salut a toi progammeur !

Bonjour tout le monde je suis en train de realiser un petit projet en C: implementation de B arbres .

voila la fonction qui me pose probleme : rechercher_une _clé(arbre a, noeud x, int k) , la cle etant k, la racine de l'arbre x et l'arbre a.
A la fin de cette fonction je voudrais retourner 2 valeur : un pointeur vers le noeud qui contient la clé ( dans la fonction je le trouve recursivement ) et aussi un entier qui est l'indice du tableau de clé(le tableau de cle se trouve dans la structure noeud.

Voici ou j'en suis :

struct noeud{
int n ; /* nb_cle*/
int * cle ;/* tableau de clé*/
bool feuille ;/* est une feuille ?*/
noeud * c ;/*le tableau des noeud enfant */
};

struct arbre{
int ordre ;
noeud racine ;
};

int rechercher_B_arbre(arbre a, noeud x, int k){
int i=1 ;
while(i <= x->n && k > x->cle[i]){
i=i+1 ;
if(i <= x->n && k = x->cle[i])
return x[i]; /* le probleme est la ! car ici je ne retourne que un entier :( */
if(x->feuille)
return NULL ;
else
return rechercher_B_arbre(a, x->c[i], k);
}
}

merci, merci pour l'aide que vous apporterez, je galere !
si je suis pas assez clair dans mes donnée hesitez pas a me redemander des infos .

5 réponses

Salut,
C'est impossible de retourner plusieurs valeurs.

Par contre, t'es en C, donc tu peux passer par des pointeurs / références..

Peace.
1