1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #include<stdio.h>
#include<stdlib.h>
#include<string.h>
//etablissons la structure de notre arbre binaire
typedef struct num
{
int valeur;
struct num *fils_gauche;
struct num *fils_droit;
}arbre;
arbre *creerarbre(arbre *A, int x, int n)
{
if (A==NULL)
{
A=(arbre*)malloc(sizeof(arbre));//creation de l'arbre
A->valeur=x; //la racine prend une valeur x
A->fils_gauche=NULL; //le fils de gauche pointe sur null
A->fils_droit=NULL; //le fils de droit pointe sur null
n++; //on incrémente le compteur pour atteindre le nombre de niveau souhaité
};
if (n<=7)
{
A->fils_gauche=creerarbre(A->fils_gauche,0,n); //on appelle la fonction pour creer le sous arbre ayant le fils de gauche comme racine
A->fils_droit=creerarbre(A->fils_droit,1,n);//on appelle la fonction pour creer le sous arbre ayant le fils de droit comme racine
};
return A;
}
void parcoursprefixe(arbre *P)
{
if(P != 0)
{
printf("%d",P->valeur);
parcoursprefixe(P->fils_gauche);
parcoursprefixe(P->fils_droit);
};
}
int main()
{
arbre *R;
R=(arbre*)malloc(sizeof(arbre));
R=creerarbre(R,0,1);
parcoursprefixe(R);
getch();
} |
Partager