Bonsoirs , j'ai réalisé un arbre binaire de recherche et je veux l'afficher sous cette forme
je me suis cassé la tête mais aucune solution j'aimerai bien que vous m’aidiez en C (précisément) et merci d'avance1 / \ 2 3 / \ \ 4 5 6 / \ / 7 8 9
voici une partie du code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 #include<stdio.h> #include<stdlib.h> #include<stdbool.h> typedef struct noeud{ int val; struct noeud *g; struct noeud *d; }noeud_a; noeud_a *nouveauNoeud(int e) { noeud_a *n = (noeud_a*)malloc(sizeof(noeud_a)); n->d=NULL; n->g=NULL; n->val=e; return n; } noeud_a *creeArbreBinaire(int e) { noeud_a *n=nouveauNoeud(e); printf("voulez vous ajouter un fils gauche ? (o/n) oui- > entier || non -> -1 \n"); scanf("%d",&e); if(e!=-1) n->g = creeArbreBinaire(e); else n->g=NULL; printf("voulez vous ajouter un fils droit ? (o/n) oui- > entier || non -> -1 \n"); if(e!=-1) n->d=creeArbreBinaire(e); else n->d=NULL; return n; } noeud_a *insertionArbreBiniare(noeud_a *racine,int e) { if(racine==NULL) return nouveauNoeud(e); if(e>racine->val) racine->d=insertionArbreBiniare(racine->d,e); else if(e<racine->val) racine->g=insertionArbreBiniare(racine->g,e); return racine; } void afficher(noeud_a *racine) { if(racine==NULL) return ; if(racine!=NULL) printf("%d ",racine->val); if(racine->g!=NULL) afficher(racine->g); if(racine->d!=NULL) afficher(racine->d); } int main(void) { printf(" voici l'arbre de recherche \n"); noeud_a *racine=NULL; racine =insertionArbreBiniare(racine,15); racine =insertionArbreBiniare(racine,10); racine =insertionArbreBiniare(racine,20); racine =insertionArbreBiniare(racine,3); racine =insertionArbreBiniare(racine,13); racine =insertionArbreBiniare(racine,18); racine =insertionArbreBiniare(racine,22); afficher(racine); return 0; }
Partager