Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
  Derniers articles
  • Comment utiliser les ports COM dans …
  • Comment créer Bonjour tout le monde…
  • Comment afficher plusieurs colonnes …
  • Comment utiliser des bannières et d…
  • Comment compiler du code sur un Mac 
  • Comment lancer Char à Int 
  • Qu'est-ce qu'une Fragment de code C 
  • C Fonction statique en ligne 
  • Comment créer un texte pour Direct3…
  • Les avantages de LINQ 
  •   C /C + + Programming
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    C /C + + Programming

    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) ; } 

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment faire pour augmenter la valeur d'un pointeur dans une fonction 
  • Comment faire Entrée uniquement un Integer en C + + 
  • Comment faire pour importer une DLL à l'aide du code non managé 
  • Comment faire pour convertir IPA à C Source 
  • Comment faire pour convertir variable INT à cordes 
  • Les différences dans Malloc et calloc 
  • Comment supprimer une ligne dans DataGridView 
  • Comment utiliser le vecteur STL Container Classe 
  • Comment écrire un programme en C pour des conversions métriques 
  • Appeler la fonction de l'objet C + + Syntaxe 
  • Connaissances Informatiques © http://www.ordinateur.cc