| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> C /C + + Programming >> Content
    Come creare un albero binario in C
    alberi binari in C sono un buon modo per organizzare dinamicamente i dati per facilitarne la ricerca . Tuttavia, richiedono un sacco di lavoro da mantenere.
    Istruzioni Creare l' albero binario
    1

    Struttura tuo albero binario . Ogni albero binario avrà bisogno di una struttura , anche se ha una sola variabile . Scegli un nome , quindi utilizzare typedef per crearlo :

     typedef struct student_data STUDENT_DATA ; 
    2

    definire la struttura . Includere due puntatori alla stessa struttura: struct

     student_data { int student_id ; int student_grade ; STUDENT_DATA * a sinistra , a destra * ;} ; 
    3

    assegnare un puntatore a questa struttura dati , inizializzazione di NULL , di essere la testa di albero :

     STUDENT_DATA * studenti = NULL; 
    Aggiungi al binario albero
    4

    Allocare due puntatori temporanei della struttura dati :

     STUDENT_DATA new_student * , * cur_student ; 
    5

    Usa malloc ( ) per creare un nuovo elemento , il controllo sempre per un errore :

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

    popolare i campi del nuovo elemento . Impostare i campi di destra e sinistra per NULL :

     new_student - > student_id = newid ; new_student - > student_size = newsize ; new_student - > sinistro = NULL; new_student - > destra = NULL; 
    7

    consideri la testa variabile . Se la variabile di testa è NULL , questo è il primo elemento aggiunto alla struttura , in modo da impostare la testa variabile per puntare a esso , e il gioco è fatto :

     se { studenti = new_student ; return; } < (studenti ! ) br> 8 

    Inizia la parte superiore della struttura :

     cur_student = studenti , mentre ( cur_student ) { Pagina 9 

    Maneggiare la voce duplicata se il nuovo valore e il valore corrente sono uguali :

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

    Deal con valori diversi . Se il nuovo valore è inferiore al valore corrente , il nuovo elemento va sulla sinistra . Aggiungere immediatamente se non c'è niente di sinistra . In caso contrario , traversa a sinistra e loop :

     se ( newid student_id ) {if ( cur_student - > sinistro == NULL) { cur_student - > sinistro = newstudent ; return 1; } cur_student = cur_student - > sinistro ; 
    11 < p > Fate la stessa cosa a destra , altrimenti :
     } else {if ( cur_student - > destro == NULL) { cur_student - > destra = newstudent ; return 1; } cur_student = cur_student - > destra ; } } 
    Cerca il file binario Albero
    12

    Creare una variabile temporanea che punta alla struttura dati :

     STUDENT_DATA * cur_student ; Pagina 13 

    la variabile temporanea per la testa variabile :

     cur_student = students_head ; Pagina 14 

    loop attraverso gli elementi , il controllo per il valore desiderato :

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

    Filiale di sinistra o di destra , e loop , se non viene trovato :

     se ( cur_student - > student_id cur_student = cur_student - > destra ; } else { cur_student = cur_student - > left; } Pagina 16 

    Vedere se il ciclo termina Se lo fa , significa che non hai mai trovato l' articolo: .

     } return 0; 
    Clean Up
    17

    deallocare l'albero binario quando il programma termina , come non tutti i sistemi operativi sono in grado di gestire questo automaticamente questo è fatto meglio utilizzando una funzione ricorsiva : .

     vuoto deallocate_binary_tree ( STUDENT_DATA * albero ) { 
    18

    Osservare : se c'è non è un albero , non c'è niente da fare : se

     ritorno ; 
    19

    deallocare i sottoalberi sinistro e destro in modo ricorsivo ( albero ! ) :

     deallocate_binary_tree ( albero - > sinistra) ; deallocate_binary_tree ( albero - > a destra) ; 
    20

    deallocare l'elemento , e il gioco è fatto :

     libero ( albero );} 

    Previous :

    next :
      Articoli Correlati
    ·Come creare un albero binario in C 
    ·Come scrivere applicazioni database con C # 
    ·Come cancellare un stringstream 
    ·Come visualizzare una stringa in C Backwards 
    ·Strumenti per trovare una perdita di memoria 
    ·Come creare un file di testo utilizzando C + + 
    ·Iomanip Funzioni 
    ·Apue.H non presenti in Ubuntu 
    ·Come fare un progetto in Xcode Da una cartella esistent…
    ·Come cambiare la mia password 
      Articoli in evidenza
    ·Come prova con PHP 
    ·Come creare una goccia Javascript Down Menu con PHP 
    ·Java Ammortamento Calcolatrice Codice Aiuto 
    ·Come modificare il valore predefinito di MySQL nome ute…
    ·Come aggiungere un riferimento a un progetto in Visual …
    ·Come convertire un float all'intero più vicino in Visu…
    ·Come accedere alle variabili di un altro file PHP 
    ·Come contare quanti record sono stati aggiornati per PH…
    ·Come sostituire i caratteri non alfanumerici nel PHP 
    ·Come modificare un file di testo utilizzando PHP 
    Copyright © Conoscenza Informatica http://it.wingwit.com