| 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 una lista doppiamente collegata in C Programmazione
    programmatori usano liste collegate a strutture di dati linearmente attraversabili . Ciò significa che il programmatore può cominciare dall'inizio della lista (chiamato testa ) e spostare in avanti la lista di un elemento alla volta. Questo metodo di memorizzazione dei dati consente inoltre al programmatore di aggiungere efficientemente dati all'elenco , offrendo una più versatile alternativa ad alcune altre strutture di dati come array dinamici . Questo esempio mostra come costruire una semplice lista doppiamente collegata , che permette la navigazione della lista su due direzioni ( avanti e retromarcia) . Cose che ti serviranno
    Text Editor
    C /C + + Compiler o IDE ( ad esempio Microsoft Visual Studio ) economici Show More Istruzioni
    1

    creare la struttura del nodo che servirà come il tipo di dati della lista collegata . Nel editor di testo , inserire il seguente codice :

    # include

    int main {

    struct listNode {
    dati int

    ;

    puntone listNode * prec ;

    puntone listNode * prossimo ;

    } ;

    return 0; }


    "struct listNode " blocco di codice crea un modello per gli elementi che andranno a popolare la lista . Questo modello definisce un listNode come contenente tre elementi: un elemento di dati ( un intero) e dei riferimenti a precedenti e successivi elementi nell'elenco . Un puntatore è una variabile che contiene un indirizzo di memoria . I puntatori sono utilizzati per fare riferimento ad altre strutture di dati in memoria profonda e per allocare dinamicamente la memoria durante l' esecuzione di codice .
    2

    dichiarare le variabili che organizzeranno la struttura della lista . Inserire questo codice di esempio nel file di testo :

    dimensioni int ;

    listNode * testa ;

    listNode * coda;

    coda = testa ; < br >

    testa = coda ;

    Questi due indicatori sono l'inizio e la fine della lista , rispettivamente . Utilizzando questi puntatori , il programmatore sa dove l'inizio della lista è e dove la fine è , semplicemente controllando se il nodo corrente è la "testa" o pointer "coda " . Entrambi rimandano l'un l'altro in caso di una lista vuota .
    3

    Crea un algoritmo semplice per aggiungere elementi dalla lista collegata . Segui questo codice di esempio :

    vuoto append ( int num) {

    struct listNode * tracciante = testa ;

    struct listNode * newNode = ( struct listNode * ) malloc ( sizeof ( struct listNode ) ) ;

    newNode - > data = num;

    if ( testa == NULL) {

    testa = newNode ;

    coda = newNode ;

    newNode - > prev = testa ;

    newNode - > next = coda;

    }

    else {

    mentre ( tracciante - > next = coda! ) per

    { tracciante = tracciante - > next ; }

    newNode - > prev = tracciante ;

    newNode - > next = coda;

    tracciante - > next = nodo ;

    coda = nodo ;

    }
    dimensione

    + + ;

    }

    Questo codice aggiunge un nodo alla fine della lista . Si inizia con la creazione di un puntatore alla testa della lista ( " tracer " ) . Poi , si crea un puntatore a un blocco allocato dinamicamente di memoria riservata per un listNode appena creato ( newNode ) e imposta i dati di quel nodo al numero intero " num" . Se i punti della testa a NULL ( cioè l'elenco è vuoto , perché i punti di testa per niente ), seguito, il codice inserisce il nodo all'inizio della lista . In caso contrario , i " mentre" cicli di loop attraverso i nodi della lista fino a raggiungere l' ultimo nodo . Quando " traccianti " punti per l'ultimo elemento della lista , il codice inserisce il nodo . Il comando finale si aggiunge alla "dimensione" intero, tenendo traccia degli elementi nella lista
    4

    Crea un algoritmo per rimuovere ed elemento dalla fine della lista : .

    vuoto removeNode ( ) {

    if ( coda = testa! ) {

    struct listNode * = fine della coda ;

    coda = tail - > prev ;
    < p > libero (fine) ;
    dimensione

    - ;

    }

    }

    Questo codice crea un puntatore ( " end ") per l'ultimo elemento della lista (l'elemento stesso " coda " punti a ) . Poi , coda è impostata per puntare all'elemento immediatamente prima dell'ultimo elemento ( il nodo puntato dal puntatore " prev " dell'ultimo elemento ) . Infine , la memoria utilizzata da ultimo nodo , a cui si riferisce "fine" , è liberato per un ulteriore uso .

    Previous :

    next :
      Articoli Correlati
    ·Come collegare COBOL e C insieme su z /OS 
    ·C + + Fibonacci Numero Funzione 
    ·Come visualizzare un triangolo rettangolo di numeri in …
    ·Come unire unici algoritmi Integer 
    ·Come creare un Randomizer in C 
    ·Come utilizzare un programma C Come verificare Armstron…
    ·Come fare il vostro proprietario Game Engine 
    ·Come valutare Moltiplicazione booleano in C + + 
    ·Come capire puntatori in C 
    ·Come visualizzare le colonne in GridView 
      Articoli in evidenza
    ·Come variabili di uscita alle stringhe XML su Android 
    ·Relazione tra JVM Memoria e Dimensione heap 
    ·Come fare un report da fogli di Excel con VBA 
    ·Come scrivere il codice sorgente 
    ·Come sostituire arbitraria di testo in stringa in C + +…
    ·Come impostare la directory di progetto in Python 
    ·Come creare una mappa di hash 
    ·Come eseguire file PHP in Ubuntu con argomenti 
    ·Come dividere un URL lungo in 2 
    ·Come utilizzare lo strumento di calcolo per il CPP 
    Copyright © Conoscenza Informatica http://it.wingwit.com