begin process at 2012 05 27 15:32:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > DESSINER UNE ARBRE BINAIRE( MODE CONSOLE):

DESSINER UNE ARBRE BINAIRE( MODE CONSOLE):


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :dessin, arbre binaire, parcour, recherche, graph Niveau :Initié Date de création :16/11/2011 Vu / téléchargé :2 556 / 164

Auteur : benzarabel

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Bonjour;
car il est défficile d'imaginer la représentation d'une arbre binaire,
je vous présente un code en c qui dessin une arbre binaire de recherche sur le console.

Voir le Snapshot (capture) pour etre convaincus de télecharger le code :)

le modelle d'arbre binaire(rechercher , supression, ...) est inclu dans le code aussi.


Source

  • le reste du code est dans le zip:
  • voila la fonction DrawTree_Horizonral
  • void DrawTree_Horizonral(TArbre arbre,char type, int x, int y,int level)
  • {
  • if(arbre!=NULL)
  • {
  • int a=level-1;
  • switch (type)
  • {
  • case 'r'://racine
  • /*on calcule les coordonées du racine slon le profonder de l'arbre ...*/
  • x=1;
  • y=pow(2,Hauteur(arbre)-1);
  • gotoxy(x,y);
  • printf("[%d]",arbre->valeur);
  • printf("%c%c",196,180);
  • DrawTree_Horizonral(arbre->droit,'d',x+nb_pos(arbre->valeur)+3,y-1,Hauteur(arbre));
  • DrawTree_Horizonral(arbre->gauche,'g',x+nb_pos(arbre->valeur)+3,y+1,Hauteur(arbre));
  • break;
  • case 'd'://droit
  • while(a>=0)
  • {
  • a--;
  • gotoxy(x,y);
  • y--;
  • printf("%c",179);
  • }
  • gotoxy(x,y);
  • printf("%c",218);
  • textcolor(10);
  • printf("(%d)",arbre->valeur);
  • textcolor(15);
  • printf("%c%c",196,180);
  • DrawTree_Horizonral(arbre->droit,'d',x+nb_pos(arbre->valeur)+2+2,y-1,Hauteur(arbre)-1);
  • DrawTree_Horizonral(arbre->gauche,'g',x+nb_pos(arbre->valeur)+2+2,y+1,Hauteur(arbre)-1);
  • break;
  • case 'g'://gauche
  • textcolor(15);
  • while(a>=0)
  • {
  • a--;
  • gotoxy(x,y);
  • y++;
  • printf("%c",179);
  • }
  • gotoxy(x,y);
  • printf("%c",192);
  • textcolor(12);
  • printf("(%d)",arbre->valeur);
  • textcolor(15);
  • printf("%c%c",196,180);
  • DrawTree_Horizonral(arbre->droit,'d',x+nb_pos(arbre->valeur)+2+2,y-1,Hauteur(arbre)-1);
  • DrawTree_Horizonral(arbre->gauche,'g',x+nb_pos(arbre->valeur)+2+2,y+1,Hauteur(arbre)-1);
  • break;
  • }
  • }else
  • {
  • gotoxy(x,y);
  • if(type=='d')
  • printf("%c%c",218,196);
  • else
  • printf("%c%c",192,196);;
  • textcolor(14);
  • printf("%c",16);
  • textcolor(7);
  • //printf("%c%c",196,180);
  • }
  • }
le reste du code est dans le zip: 
voila la fonction DrawTree_Horizonral

void DrawTree_Horizonral(TArbre arbre,char type, int x, int y,int level)
{

    if(arbre!=NULL)
    {
        int a=level-1;
        switch (type)
        {
            case 'r'://racine
            /*on calcule les coordonées du racine slon le profonder de l'arbre ...*/
            x=1;
            y=pow(2,Hauteur(arbre)-1);
            gotoxy(x,y);
            printf("[%d]",arbre->valeur);
            printf("%c%c",196,180);
            DrawTree_Horizonral(arbre->droit,'d',x+nb_pos(arbre->valeur)+3,y-1,Hauteur(arbre));
            DrawTree_Horizonral(arbre->gauche,'g',x+nb_pos(arbre->valeur)+3,y+1,Hauteur(arbre));
            break;

            case 'd'://droit

            while(a>=0)
            {
                a--;
                gotoxy(x,y);
                y--;
                printf("%c",179);
            }
            gotoxy(x,y);
            printf("%c",218);
            textcolor(10);
            printf("(%d)",arbre->valeur);
            textcolor(15);
            printf("%c%c",196,180);
            DrawTree_Horizonral(arbre->droit,'d',x+nb_pos(arbre->valeur)+2+2,y-1,Hauteur(arbre)-1);
            DrawTree_Horizonral(arbre->gauche,'g',x+nb_pos(arbre->valeur)+2+2,y+1,Hauteur(arbre)-1);

            break;

            case 'g'://gauche
            textcolor(15);
            while(a>=0)
            {
                a--;
                gotoxy(x,y);
                y++;
                printf("%c",179);
            }
            gotoxy(x,y);
            printf("%c",192);
            textcolor(12);
            printf("(%d)",arbre->valeur);
            textcolor(15);
            printf("%c%c",196,180);
            DrawTree_Horizonral(arbre->droit,'d',x+nb_pos(arbre->valeur)+2+2,y-1,Hauteur(arbre)-1);
            DrawTree_Horizonral(arbre->gauche,'g',x+nb_pos(arbre->valeur)+2+2,y+1,Hauteur(arbre)-1);
            break;
        }

    }else
     {

        gotoxy(x,y);
        if(type=='d')
        printf("%c%c",218,196);
        else
        printf("%c%c",192,196);;
        textcolor(14);
        printf("%c",16);
        textcolor(7);
        //printf("%c%c",196,180);
     }

}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   BT bell
    •   BinaryTree
      •   bin
        • Debug
      •   obj
        •   Debug
          • main.oTélécharger ce fichier [Réservé aux membres club]3 093 octets
          • tree.oTélécharger ce fichier [Réservé aux membres club]8 388 octets
      • BinaryTree.cbpTélécharger ce fichier [Réservé aux membres club]1 166 octets
      • BinaryTree.dependTélécharger ce fichier [Réservé aux membres club]563 octets
      • BinaryTree.layoutTélécharger ce fichier [Réservé aux membres club]340 octets
      • main.cTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 004 octets
      • tree.cTélécharger ce fichier [Réservé aux membres club]Voir ce fichier6 884 octets
      • tree.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier815 octets
    •   conio
    • snapshot.jpgTélécharger ce fichier [Réservé aux membres club]Voir ce fichier53 598 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS...
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture AFFIMOFF : UNE VISIONNEUSE 3D AVEC PARAMÉTRISATION ET TEXTUR... par pgl10

 Sources en rapport avec celle ci

Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip AUTRE GRILLE DE SUDOKU par Eneur
A5PAINTING,LE PAINT A LA DÉBUTANT par Chiheb2010
Source avec Zip RECHERCHE D'ANNAGRAMMES par Torin
Source avec Zip ALGORITHME DE RECHERCHE DICHOTOMIQUE par deck_bsd

Commentaires et avis

Commentaire de buno le 17/11/2011 10:01:01 administrateur CS 6/10

Hello,
Bon code. Quelques remarques toutefois:
- ça manque de commentaire... (nb_pos...afficher1, afficher2, afficher3... quelle différence?)
- pas très joli le mélange d'anglais et de français
- tu peux rajouter des exemples d'utilisation des fonctions recherche, somme,...

Je n'ai pas testé la robustesse du code...

Commentaire de buno le 17/11/2011 10:05:19 administrateur CS

Rhooo...."Initié"....J'avais pas fait gaffe.
Je trouve cette classification un peu abusée quand même.

Commentaire de benzarabel le 17/11/2011 11:55:07

Merci"BUNO" pour ces remarques, je vais le modifier quand j'ai le temps.
je suis pas trés bien en fraçais donc pardonnez moi pour les faults..
en plus je trouve que l'englais m'inspire beaucoup :)

  

Commentaire de buno le 17/11/2011 12:05:15 administrateur CS

Et bien, dans ce cas, code en anglais et non en français :p

Commentaire de mar1987 le 24/12/2011 02:22:45

que fait la fonction nb_pos, et j'ai pas bien saisi le sens des instruction "for(ret=1;a./10;ret++,a/=10);" "if (b.TotalElu<0) ret++;" si tu peux m'expliquer ! Merci pour le code, c'est instructif ! Merci

Commentaire de benzarabel le 25/12/2011 16:16:48

Bonjour...
la fonction nb_pos renvoie le nombre de positions d'un entier.
c'est a dire si on la donne 1235 elle renvoie 4 mais pour un souci d'affichage dans le console
j'était aussi besoin de considérer la signe (-) comme une position .. donc c pour ça que j'ai fait le test de signe.. c tous.
concernant la boucle ... c équivalent à:
ret=0;
do
{
a/=10;
ret++;
}while(a!=0) ;

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Booter un PC [ par Jo ] Bonjour,je recherche comment faire dans un premier temps comment faire booter un PC a partir d'une disquette par exemple sans utiliser aucun systeme d Recherche code source de notepad... [ par PierreP ] ou de tout autre éditeur de texte assez simple.Merci d'avance ! Recherche un compilateur en c [ par turlututu ] Help me!!!!! :0(Je cherche déseperement un compilateur KEIL ELEKTRONIK en C.Je posséde le compilateur C51 Compiler V3.4 sous dos mais j'en voudrait un RECHERCHE VISUAL C++ 6 [ par Death Angel ] Bonjour!!Je recherche Visual C++ 6, si il existe une version Entreprise comme Visual Basic 6. Si c'est possible de le metrte sur un site couper en pet control entre vers de C++ [ par bolix ] je recherche la ligne de commande qui puisse me faire appeler à partir du c++ des programme en asembleurs.je recherche aussi la ligne de commande pou Recherche Microsoft Visual Cpp [ par Socrate ] Je cherche un url (adresse internet) pour télécharger gratuitement Microsoft Visual Cpp.Please help ...Merci d'avance :) RECHERCHE PROGRAMEUR C++ POUR CLICK&CREATE 32bits [ par imothep85 ] salut je recherche un programeur qui veuille bien me progrmmer des petites extensions en c++ pour cnc, j'ai le SDK pour ca et comme j ne suis PAS prog Recherche comment recuperai les variables (options) qui ont lancer mon programme [ par Cybmat ] SAlut je fait qu cpp que depuis moin d'un moiset ej cherche comment on fait pour connaitres les options ki ont lacer mon programe ( ex : pro.exe -cons recherche tutoriel visual C++ [ par tom ] Je programme en cpp mais j'ai bcp de mal avec visual cpp et surtout sa partie graphique.Donc si vous avez un tutoriel vous pouvez me le mailez a : arc [?] dessin en couleur sous visual C SDK [ par jetsam ] Comment faire pour desiner une ligne en couler en Visual Cjuste en SDK (pas d'objet) avec un HDC


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales