Yop, pour un devoir d'info je dois implémenter un arbre binaire de recherche en C et j'ai un peu de mal (pas trop suivi les labos j'avoue
)
Si y a queulqu'un de doué en C et qui s'y connait un peu en arbre, à qui ca ne prendrait pas trop de temps de m'expliquer vite fait deux trois trucs (suis à la bourre ) je suis preneur
Merci
A titre d'info voila le code que j'ai recu et que je dois compléter
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
struct node {
struct node *lChild; //Pointeur vers le fils gauche.
struct node *rChild; //Pointeur vers le fils droit.
int value; //Valeur, ou cle, du noeud.
};
struct tree {
struct node *root; //Pointeur vers l'element racine;
};
struct tree* constructNewTree()
{
//Fonction qui alloue un arbre vide.
struct tree *T=malloc(sizeof(struct tree));
T->root=NULL;
return T;
}
void insertKey(int i, struct tree *T)
{
//Completer la fonction pour qu'elle insere l'element i dans l'arbre T.
}
}
bool findKey(int i, struct tree *T)
{
//Completer la fonction pour qu'elle retourne true si i est dans l'arbre T, et false sinon.
}
void deleteKey(int i, struct tree *T)
{
//Completer la fonction pour qu'elle supprime l'element i dans l'arbre T.
}
void inOrder(struct tree *T)
{
//Completer la fonction pour obtenir un parcour recursif "en-ordre" de l'arbre T.
}
void deleteTree(struct tree *T)
{
//Ecrire les instructions pour supprimer l'arbre T:
//1) effacer tous les noeuds encore presents dans l'arbre
//2) faire un free() du pointeur T
//3) mettre T à NULL
}
int main()
{
struct tree *T;
T=constructNewTree();
insertKey(5,T);
insertKey(2,T);
insertKey(9,T);
insertKey(1,T);
inOrder(T);
deleteTree(T);
return 0;
}
J'ai surtout du mal avec les variables tree et constructNewTree, j'ai un peu du mal a voir leur utilité et ce que ca change pour après.
C'est surtout la fonction insertNewKey qui me pose défaut, dès que je la trouve, le reste devrait aller tout seul c'est assez semblable.