void afficherArbre(Arbre *a) { if (a != NULL) { printf("("); afficherArbre(a->g); printf("%d", a->x); afficherArbre(a->d); printf(")"); } else { printf("_"); } }
void afficherArbre(arbre *a){ printf("%d\n|\n ",a->val); if(a->nbE > 1){ arbre *ptr=a->enfant; while (ptr!=NULL){ afficherArbre(ptr); ptr=ptr->frere; } } }
int main(int argc, char **argv) { /* Déclarons 3 listes chaînées de façons différentes mais équivalentes */ arbre *a = creerArbre(1); arbre *b = creerArbre(8); ajouterEnfant(a,2); ajouterEnfant(a,4); ajouterEnfant(b,16); embranche(a,b); afficherArbre(a); return 0; }
int main() { Liste l1=Exemple1(); Liste l2=Exemple2(); printf("Liste1 de 7 elements :\n"); afficherliste(l1); printf("Liste2 de 6 elements :\n"); afficherliste(l2); Arbin a1=la(l1); Arbin a2=la(l2); printf("Affichage de l'arbre1\n"); afficherArbre(a1); printf("Affichage de l'arbre2\n"); afficherArbre(a2); printf("\n"); Liste l3=al(a1); printf("al sur arbre1 :\n"); afficherliste(l3); Arbin u0=union0(a1,a2); Arbin u1=union1(a1,a2); printf("Affichage de union0 :\n"); afficherArbre(u0); printf("Affichage de union1 :\n"); afficherArbre(u1); printf("Oter le minimum de l'arbre1\n"); Arbin o=om(a1); afficherArbre(o); Arbin i=ins(a1,42); printf("Insertion de 42 dans l'arbre1\n"); afficherArbre(i); freeListe(l1); freeListe(l2); freeListe(l3); freeArbre(a1); freeArbre(a2); freeArbre(u0); freeArbre(u1); freeArbre(o); freeArbre(i); return 0; }
int main( int argc, char * argv[] ){ noeud * b = creerNoeud_f( T_CST_REEL,4.5456456 ); noeud * c = creerNoeud_i( T_CST_ENTIER,85); noeud * d = creerNoeud_i( T_CST_ENTIER,10 ); noeud * a = creerNoeud( T_AFFECT ); ajouterFrere( a,b ); ajouterFils( a,c ); ajouterFils( a,d ); afficherArbre(a); printf("\n\n"); return 0; }
Arbre* equilibrer(Arbre *a) { afficherArbre(a); printf("\n"); if (a != NULL) { a->g = equilibrer(a->g); a->d = equilibrer(a->d); if (hauteur_max(a->g) > (hauteur_max(a->d) + 1)) { a = rotd(a); } else if (hauteur_max(a->d) > (hauteur_max(a->g) + 1)) { a = rotg(a); } /*if (abs(hauteur_max(a->g) - hauteur_max(a->d)) > 1) { a = equilibrer(a); }*/ } return a; }