Rechercher : dans
Par :

[C++] implémention d'un arbre binaire

Dernière réponse le 4 mai 2009 à 19:07:49 mina15, le 23 jan 2007 à 23:20:49 
 Signaler ce message aux modérateurs

Bonjour tout le monde
Pourriez vous m'aidez à implémenter un arbre binaire en C++ svp.
Merci d'avance.
A bientot.

Meilleures réponses pour « [C++] implémention d'un arbre binaire » dans :
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
WebFldrs XP, c'est quoi ? VoirVous vous inquiétez de la présence d'une application nommée "WebFldrs XP" dans votre panneau de configuration ? Pas de panique, il s'agit uniquement de la fonctionnalité Web Folders de 2000/XP, c'est-à-dire un implémentation du protocole WebDAV...
Parser un fichier binaire en PHP VoirSupposons que vous ayez enregistré des données binaires dans un fichier, c'est-à-dire un enregistrement brut qui n'est pas traduit en texte. C'est une chose que l'on fait couramment avec certains langages de bas niveau comme le C ou le...
Le codage binaire VoirPrésentation du binaire Bit Poids des bits Conversions Octet KiloOctets, MégaOctets Opérations en binaire Addition binaire Multiplication binaire Présentation du binaire Vers la fin des années 30, Claude Shannon démontra qu'à l'aide...
Langage C - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...

1

loulou2008, le 21 déc 2007 à 23:48:19
  • +5

#include<stdio.h>
#include<stdlib.h>
typedef struct noeud * tree;
struct noeud
{int val;
tree fg,fd;
};
tree cree_noeud(int val)
{
tree a;
a=(tree)malloc(sizeof(noeud));
if(!a)
{printf("pas d espace");
return(NULL);
}
if(a)
{
a->fd=NULL;
a->fg=NULL;
a->val=val;
printf("%d",a->val);
return(a);
}
}
tree ajout(tree b,tree a,tree r)
{a=r;
if(a==NULL)
{
return b;
}
else
{
if(b->val<a->val)
{
if(a->fd==NULL)
{
a->fd=b;
printf("%d",a->val);
return(r);
}
else
{
r=ajout(b,a->fd,r);
return(r);
}
}
else
{
if(a->fg==NULL)
{
a->fg=b;
printf("%d",a->val);
return r;
}
else
{
r=ajout(b,a->fg,r);
return(r);
}
}
}
}
void prefixe(tree a)
{
if(a!=NULL)
{
printf("%d ",a->val);
prefixe(a->fg);
prefixe(a->fd);
}
}

void main()
{int x,l,h;
tree r=NULL,b=NULL,k=NULL,a=NULL;free(r);
printf("donner un entier : \n" );
scanf("%d",&x);
b=cree_noeud(x);
r=ajout( b,a, r);
printf("%d",r->val);
flushall();
printf("donner un entier : \n");
scanf("%d",&x);
b=cree_noeud(x);
r=ajout( b,a, r);

prefixe(r);
}

Répondre à loulou2008

2

rom1504, le 30 nov 2008 à 23:17:46
  • +1

C'est du C

Répondre à rom1504

3

mamiemando, le 1 déc 2008 à 00:14:19

Je signale juste que du C++ c'est jamais que du C enrichi. Alors effectivement tu peux faire des classes, des héritages, des templates (ou encore mieux, du boost) si ça t'amuse, mais en soit ça ne change pas grand chose.

Répondre à mamiemando

4

rom1504, le 1 déc 2008 à 17:34:07

Non le c++ et le c sont deux langages bien différents maintenant et ici c'est bien du C vu l'utilisation de malloc, pas d'utilisation des classes alors que ça serait plus adapté en c++, utilisation de printf ( au lieu de cout en c++ ) et inclusion de stdio.h et stdlib.h.
On peut bien compiler du c facilement avec un compilateur fait pour le c++ mais ça ne deviens pas pour autant du c++...

Répondre à rom1504

6

 ccc, le 4 mai 2009 à 19:07:49

Au contraire ça change tous

Répondre à ccc

5

mamiemando, le 1 déc 2008 à 22:43:48

Sans vouloir te faire de peine toutes les fonctions "C" sont accessibles via des headers genre <cstdio>, <cassert>, etc... Du coup est ce que le code n'en devient plus du C ou pas moins du C++ :p

En soi, ça n'apporte rien de vouloir coder "C++" like si tu peux le faire aussi facilement en C. Ici le seul intérêt du C++ pourrait être l'utilisation de template pour faire un arbre générique mais c'est à peu près tout ce qui est à gagner. En particulier certaines fonctions genre fscanf (pour parser un fichier) sont plus pratique qu'un std::ifstream et >>. Soit tu utilises de la lib pcre, soit au final tu utilises <cstdio> et fscanf. Toute cette dissertation pour dire qu'à mon avis dans ce cas précis ça n'a pas des masses d'importance.

Ceci dit, si tu es chaud pour faire une solution C++ n'hésite pas ;-)

Bonne chance

Répondre à mamiemando
Collection CommentÇaMarche.net