Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Arbre binaire de recherche(langage C)

matafix, le jeudi 24 avril 2008 à 00:34:55
bsr,
qui peut m'aider je veux implementer un arbre binaire de recherche par tableau mais j'arrive pas
Configuration: Windows XP
Firefox 2.0.0.14
Répondre à matafix  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Emeric84, le jeudi 24 avril 2008 à 20:45:08
Qu'est-ce que vous appelez implémenter un ABR par tableau ?

La solution généralement employée est de partir de la racine en premier élément du tableau, et de ranger chaque fils plus loin, à savoir pour une racine i donnée, son fils gauche et droit seront respectivement à l'indice 2i et 2i+1...

Par exemple :
      4
    /    \
  2       7
 /  \     /  \
1   3  6   9


Donne :
4 2 7 1 3 6 9
Répondre à Emeric84

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tix, le dimanche 4 mai 2008 à 21:15:21
voila l'implementation en C !


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//déclaration du noeud!
struct Noeud
{
char d; //la tu met le type que tu veux !!
struct Noeud* succ_gauche;
struct Noeud* succ_droit;
};
typedef struct Noeud* TArbre;
int main()
{
TArbre arbre=NULL;
system("PAUSE");
return 0;
}
Répondre à tix

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 supermagic, le dimanche 4 mai 2008 à 21:57:09
execute ça en c++
#include<iostream.h>
struct noeud {
int info;
noeud *fg;
noeud *fd;
};

const int max=30;

noeud *t[max];

void prefixe_rec(noeud *arbre){
noeud *nd;
nd=arbre;
if(nd!=NULL){
cout<<nd->info<<" ";
prefixe_rec(nd->fg);
prefixe_rec(nd->fd);}
}

void infixe_rec(noeud *arbre){
noeud *nd;
nd=arbre;
if(nd!=NULL){
infixe_rec(nd->fg);
cout<<nd->info<<" ";
infixe_rec(nd->fd);}
}

void suffixe_rec(noeud *arbre){
noeud *nd;
nd=arbre;
if(nd!=NULL){
suffixe_rec(nd->fg);
suffixe_rec(nd->fd);
cout<<nd->info<<" ";}
}

struct pile {
noeud *sommet;
pile *suivant;
};

pile *creer_pile(pile *p){
p=NULL;}

bool pile_vide(pile *p){
return (p==NULL);}

void empiler(noeud *nd,pile *p){
pile *q;
q=new(pile);
q->suivant=p;
q->sommet=nd;
p=q;}

noeud *depiler(pile *p){
pile *q;
if (!pile_vide(p)){
return p->sommet;
q=p;
p=p->suivant;
delete(q);}
else cout<<"pile vide";
}


int main(){
noeud *nd,*racine;

int n,info;
cout<<"Arbre representate par tableau"<<endl<<endl;
cout<<"Si un neoud a un seul fis l'autre est represente par -1"<<endl<<endl;
cout<<"Donnez le nombre de noeud (elements du tableau) "<<endl;
cin>>n;


for (int i=1;i<=n;i++){
cout<<"donnez la val du noeud "<<i<<" ";
cin>>info;
if (info==-1) t[i]=NULL;
else {
t[i]=new(noeud);
t[i]->info=info;
t[i]->fg=NULL;
t[i]->fd=NULL;}
}

for (int i=1;i<=n/2;i++){
if (t[2*i]==NULL) t[i]->fg=NULL; else t[i]->fg=t[2*i];
if (t[2*i+1]==NULL)t[i]->fd=NULL;else t[i]->fd=t[2*i+1];
}
racine=t[1];
prefixe_rec(racine);cout<<endl;
infixe_rec(racine);cout<<endl;
suffixe_rec(racine);cout<<endl;

system("pause");
}
Répondre à supermagic
Demande au langage c (Résolu) Bonjour, tout le monde moi jai un probleme de programmer un convertiseur decimal-binaire en langage c j arrive a le programer avec tableau mais il marche seulement avec un certin nbr de antier et pas pour tous. # include main() { int n,r,i;... www.commentcamarche.net/forum/affich-9073576-demande-au-langage-c
[C++] implémention d'un arbre binaire (Résolu) Bonjour tout le monde Pourriez vous m'aidez à implémenter un arbre binaire en C++ svp. Merci d'avance. A bientot. www.commentcamarche.net/forum/affich-2616848-c-implemention-d-un-arbre-binaire
Arbres binaires (Résolu) Bonjour, un arbres binaire de recherche A contient n nombres on dit que la taille de A est n je voudrais savoir quel est le nombre maximum de comparaison qu'une insertion d,un nombre dans un arbres binaires de recherche n peut faire? on me dit... www.commentcamarche.net/forum/affich-5954234-arbres-binaires
ARBRES BINAIRES (Résolu)Bonjour, Voilà j'aimerai savoir sur un arbre binaire, ce que c'est qu'un parcours infixes, suffixes et préfixes S.V.P c'est trés urgent !! Merci d'avance www.commentcamarche.net/forum/affich-4638555-arbres-binaires
Petit programme en langage C (Résolu)Bonjour, Etantdonné débutant en langage C, permettez moi S.V.P de vous adresser mon petit probléme que je n'arrive à comprendre la réponse: l'ennoncé de l'exercie: Écrire une fonction qui ne renvoie aucune valeur et qui détermine la... www.commentcamarche.net/forum/affich-2811312-petit-programme-en-langage-c
Getchar() langage C (Résolu)Bonjour, je suis nouveau ne langage C et donc j'eprouve quelques difficulte : Je souhaiterai stocker le flux dentre que jentre au clavier pour cela je procede de la maniere suivante : #define BUFSIZE=4096; char buf[BUFSIZE]; printf("Enter your... www.commentcamarche.net/forum/affich-2960608-getchar-langage-c
Les internautes ont recherché des cadeaux personnalisés pour la fête des mères(Paris - Relaxnews) - Dimanche dernier, le 3 juin, a eu lieu la fête des mères. Selon Leguide.com, les internautes ont principalement recherché des cadeaux personnalisés sur le Web, à côté des cadeaux diverses. 16,5% du total des requêtes ont concerné... www.commentcamarche.net/actualites/les-internautes-ont-recherche-des-cadeaux-personnalises-pour-la-fete-des-meres-3082773-actualite.php3
Introduction au langage CPetite histoire du C Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie... www.commentcamarche.net/contents/c/cintro.php3
Langage C++ - Les types de donnéesLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître... www.commentcamarche.net/contents/cpp/cpptype.php3
Langage C - Les types de donnéesLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le... www.commentcamarche.net/contents/c/ctype.php3