| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    Sådan oprettes en Binary Tree i C
    Binary træer i C er en god måde at dynamisk organisere data for nem søgning. Men de kræver en masse arbejde at vedligeholde. Instruktioner
    Opret Binary Tree
    1

    Struktur din binært træ . Hver binært træ har brug for en struktur , selv om det kun har én variabel. Vælg et navn , og derefter bruge typedef at skabe det :

     typedef struct student_data STUDENT_DATA , 
    2

    Definer struktur. Medtag to henvisninger til den samme struktur :

     struct student_data { int student_ID , int student_grade , STUDENT_DATA * venstre, * højre ;} ; 
    3

    allokere en pegepind til denne datastruktur , initialisering det til NULL , for at være træet hoved :

     STUDENT_DATA * elever = NULL ; 
    Tilføj til Binary Tree
    4

    Afsætte to midlertidige pegepinde til datastruktur:

     STUDENT_DATA * new_student , * cur_student , 
    5

    Brug malloc () for at oprette et nyt element , altid kontrollere for fejl :

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

    befolke nye elementets felter. Fastsætte sine venstre og højre felter NULL :

     new_student -> student_ID = newid , new_student -> student_size = newsize , new_student -> venstre = NULL ; new_student -> højre = NULL ; 
    7

    Overvej hovedet variabel . Hvis hovedet variabel er NULL , dette er det første element føjes til træet , så sæt hovedet variable til at pege på det, og du er færdig :

     hvis { elever = new_student , vende tilbage;} < (studerende !) br > 8. 

    Start i toppen af træet :

     cur_student = studerende , mens ( cur_student ) { 
    9

    Håndter kopi af posten , hvis den nye værdi og aktuelle værdi er ens:

     if ( newid == cur_student -> student_ID ) { abort ( );} 
    10

    Deal med ulige værdier. Hvis den nye værdi er mindre end den aktuelle værdi , det nye element går til venstre . Tilføj det samme, hvis der ikke er noget til venstre. Ellers travers til venstre og loop :

     if ( newid student_ID ) { if ( cur_student -> venstre == NULL) { cur_student -> venstre = newstudent , tilbagevenden 1; } cur_student = cur_student -> til venstre; 
    11 < p> Gør det samme på højre , ellers :
     } else {if ( cur_student -> højre == NULL) { cur_student -> højre = newstudent , tilbagevenden 1; } cur_student = cur_student -> højre ;}} < br > 
    Søg i Binary Tree
    12

    Opret en midlertidig variabel peger på den datastruktur:

     STUDENT_DATA * cur_student , 
    13

    Indstil din midlertidige variabel til hovedet variabel :

     cur_student = students_head , 
    14

    Loop gennem de elementer , kontrol for den ønskede værdi :

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

    Branch til venstre eller højre , og loop , hvis det ikke er fundet:

     if ( cur_student -> student_ID cur_student = cur_student -> højre ;} else { cur_student = cur_student -> venstre ;} 
    16

    Se om løkken slutter Hvis den gør , betyder det, at du aldrig fundet punktet : .

     } tilbagevenden 0; 
    Clean Up
    17

    deallocate den binære træ, når dit program slutter , da ikke alle operativsystemer vil håndtere dette automatisk dette gøres bedst ved hjælp af en rekursiv funktion : .

     void deallocate_binary_tree ( STUDENT_DATA * træ) { 
    18

    Overhold : Hvis der ikke er ikke noget træ , der er intet at gøre:

     hvis tilbagevenden 
    19

    deallocate venstre og højre undertræer rekursivt ( træ! ) :

     deallocate_binary_tree ( træ -> venstre) , deallocate_binary_tree ( træ -> højre ) 
    20

    deallocate elementet , og du er færdig :

     gratis ( træ) ;} 

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan installeres Windows Mobile 5.0 Pocket PC SDK 
    ·Sådan bruges OpenGL til C Sprog 
    ·Hvordan laver man en EXE i Notesblok 
    ·Sådan oprettes en switch-statement i C 
    ·Sådan Skil et DLL 
    ·Sådan logger du på Papaya Android 
    ·Hvordan man kan udvikle deployerbare Windows Mobile App…
    ·Sådan oprettes Pyc fil til at køre på web 
    ·Hvordan man opbygger en kø ud af en liste 
    ·Sådan læses en Hex fil med ANSI C 
      Anbefalede Artikler
    ·Sådan får du adgang en Data Grid 
    ·Sådan vises et Spinner Når en VBA makro kører 
    ·Hvad er betydningen af at lære C Sprog 
    ·Java Kan ikke finde symbol Metode Out 
    ·Sådan importeres flade filer i Netbeans 
    ·Perl-script Beregning 
    ·Hvilke variable datatyper gemmes i rækkefølge i Visua…
    ·Sådan Konverter et nummer til en dato i VB 
    ·Hvordan man laver en pong spil i C + + 
    ·Mega Projekter i Java 
    Copyright © Computer Viden http://www.computerdk.com