| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    Comment créer un arbre binaire en C
    arbres binaires en C sont un bon moyen d'organiser dynamiquement des données pour faciliter la recherche . Toutefois, ils exigent beaucoup de travail à entretenir. Instructions
    Créer l' Binary Tree
    1 Structure de

    votre arbre binaire . Chaque arbre binaire aura besoin d'une structure , même si elle ne dispose que d' une seule variable . Choisir un nom , puis utiliser typedef pour le créer :

     typedef struct student_data STUDENT_DATA ; Page 2 

    définir la structure . Inclure deux pointeurs vers la même structure:

     struct {int student_data student_id ; int student_grade ; STUDENT_DATA * gauche , droite * ; }; 
    3

    allouer un pointeur sur cette structure de données , l'initialisation à NULL , pour être la tête de l' arbre :

     STUDENT_DATA * élèves = NULL; 
    Ajouter à la Binary Tree
    4

    Allouer deux pointeurs temporaires à la structure de données :

     STUDENT_DATA * new_student , * cur_student ; 
    5

    utilisation malloc () pour créer un nouvel élément , toujours vérifier une erreur :

     if (( new_student = malloc ( sizeof ( STUDENT_DATA ))) == NULL ) { abort () ; } 
    6

    Remplir les champs du nouvel élément . Régler ses champs gauche et droit de NULL :

     new_student -> student_id = newID ; new_student -> student_size = NewSize ; new_student -> gauche = NULL; new_student -> droite = NULL; 
    7

    Envisager la tête variable. Si la variable de tête est NULL, c'est le premier élément ajouté à l'arbre , afin de définir la charge variable pour pointer vers elle , et vous avez terminé :

     si { élèves = new_student , de retour; } < (étudiants !) br> 8 

    départ au sommet de l'arbre :

     cur_student = étudiants ; while ( cur_student ) { 
    9

    Poignée l'entrée en double si la nouvelle valeur et la valeur actuelle sont égaux :

     if ( newID == cur_student -> student_id ) { abort () ; } 
    10

    Traiter les valeurs inégales . Si la nouvelle valeur est inférieure à la valeur de courant , le nouvel élément passe à gauche. Ajoutez-le immédiatement s'il n'y a rien sur la gauche. Sinon, traverser à gauche et boucle :

     if ( newID student_id ) {if ( cur_student -> gauche == null) { cur_student -> gauche = newstudent ; return 1; } cur_student = cur_student -> gauche ; 
    11 < p> Faites la même chose sur la droite, sinon :
     } else {if ( cur_student -> droite == null) { cur_student -> droite = newstudent ; return 1; } cur_student = cur_student -> droite ;}} 
    Recherche du Binary Tree
    12

    Créer une variable temporaire pointant vers la structure de données :

     STUDENT_DATA * cur_student ; 
    13

    définir la variable temporaire à la tête Variable:

     cur_student = students_head ; 
    14

    boucle à travers les éléments , la vérification de la valeur souhaitée : tout

     ( cur_student ) {if ( cur_student -> student_id == 15) {return cur_student -> student_grade ; } 
    15

    Direction à gauche ou à droite, et la boucle , si elle n'est pas trouvée :

     if ( cur_student -> student_id cur_student = cur_student -> droite ; } else { cur_student = cur_student -> gauche ;} 
    16

    Voir si la boucle se termine si c'est le cas, cela signifie que vous n'avez jamais trouvé l'article : .

     } return 0; 
    Clean Up
    17

    Libère l'arbre binaire lorsque votre programme se termine, comme tous les systèmes d'exploitation ne se chargera automatiquement cette Ceci mieux est d'utiliser une fonction récursive : .

     vide deallocate_binary_tree ( STUDENT_DATA * arbre) { 
    18

    Observer : Si n'est pas n'importe quel arbre , il n'y a rien à faire :

     si le retour ; 
    19

    DEALLOCATE les arbres gauche et droit de façon récursive ( arbre! ) :

     deallocate_binary_tree (arbre -> gauche) ; deallocate_binary_tree (arbre -> droite) ; 
    20

    DEALLOCATE l'élément, et vous avez terminé : gratuit

     (arbre) ; } 

    Previous :

    next :
      articles connexes
    ·Comment ajouter GMP à Xcode 
    ·Comment écrire un programme C pour lire un Integer 
    ·Comment calculer les expressions avec incrémentation e…
    ·Définition des formulaires Visual Basic 
    ·Quels inconvénients sont là dans déréférencement i…
    ·Comment faire pour convertir police TTF à PCL 
    ·Comment utiliser la fonction Memmove en C + + 
    ·Qu'est-ce qu'une Fragment de code C 
    ·Comment écrire un flux d'entrée dans un flux de sorti…
    ·Outils utilisés dans Programmation 
      articles en vedette
    ·Côté client Scripting Vs . Scripting côté serveur 
    ·Comment définir la stratégie d' exécution à distanc…
    ·Comment ouvrir un fichier PDF en PHP 
    ·Comment faire une chaîne C 
    ·Comment obtenir Fond Bouton dans Android 
    ·Comment faire pour désactiver l'authentification Windo…
    ·Comment Records Recherche en VB6 
    ·Comment calculer les jours ouvrables dans SQL 
    ·La convolution de deux signaux de temps dans MATLAB 
    ·PHP différence entre require_once et include_once 
    Copyright © Connaissances Informatiques http://fr.wingwit.com