Come invertire un elenco collegato in c

Come invertire un elenco collegato in c
L'elenco collegato è stato definito come un set di nodi di tipo struttura che contiene alcuni dati. Questa guida mostrerà come un elenco collegato può essere invertito in lingua C usando Ubuntu 20.04 Sistema. Quindi, iniziamo aggiungendo alcuni esempi. L'utente deve aprire la console terminale su Ubuntu 20.04 desktop per lavorare sulla lingua C. Per aprirlo, abbiamo usato il comando chiave di scelta rapida "ctrl+alt+t". Un altro modo per lanciarlo sul tuo desktop Ubuntu è tramite l'opzione di attività sul desktop.

Esempio 01

Quando viene lanciata l'app Terminal, crea un nuovo file C. Dobbiamo utilizzare una query "touch" più utilizzata nel terminale per farlo, come mostrato di seguito.

$ TOUCT REVERSE.C

Ora è stato creato il file C, aprilo con qualsiasi editor già installato e configurato sul sistema Linux. Abbiamo usato l'editor "nano" per aprire e modificare il file C.

$ Nano Reverse.C

Ora il file è stato mostrato in GNU Nano Editor. Abbiamo incluso prima alcune librerie per rendere eseguibile il codice nel terminale e dal compilatore. È stato costruito un nodo elenco collegato a causa del tipo di struct consiste nella variabile di informazioni sul nodo e alla creazione del nodo successivo. È stato definito un metodo "inverso" per l'inversione di un elenco collegato. Costruisce il puntatore per il salvataggio dell'indirizzo per il nodo precedente, corrente o testa e nodo successivo. Mentre il nodo della testa è nullo, viene utilizzato per renderlo il nodo successivo o corrente. Questo è stato fatto usando finora i puntatori.

La funzione "push" è stata creata per spingere i dati in nodi. Ha creato un nuovo nodo e lo ha assegnato un po 'di memoria con il metodo "Malloc". I dati sono stati assegnati a un nuovo nodo passando argomenti in parametri usando i riferimenti al nodo. Il metodo show () è stato utilizzato qui per visualizzare le informazioni dell'utente di una funzione push nei nodi.

Abbiamo definito il metodo principale per l'esecuzione di un codice. Il nodo iniziale è stato definito come null. Successivamente, abbiamo spinto i valori all'interno del nodo della testa usando il puntatore. Successivamente, il metodo show () è stato chiamato qui per visualizzare i messaggi. Successivamente, il metodo di reverse () è stato chiamato qui per invertire il valore di un elenco collegato legando il puntatore dell'intestazione indicato dal nodo. Ancora una volta, il metodo show () è stato chiamato per mostrare l'elenco collegato inverso.

Compiliamo il nostro codice con il compilatore GCC nel terminale secondo il comando dichiarato. Finora non sono stati trovati errori di compilation. Il file è stato eseguito dopo. Mostra prima l'elenco collegato originale, quindi l'elenco collegato inverso secondo l'output SNAP di seguito.

$ GCC Reverse.C
$ ./UN.fuori

Esempio 02

Il nostro primo esempio ha indicato la creazione di un elenco collegato e l'aggiunta di dati manualmente. Creeremo un collegamento e aggiungiamo dati in fase di esecuzione per mostrare e invertire l'elenco collegato. Apri nuovamente lo stesso file utilizzando l'editor "GNU Nano".

$ Nano Reverse.C

Le stesse librerie di intestazione sono state incluse mentre è stato creato il nodo del tipo di strumento. Sono stati definiti tre metodi principali. L'esecuzione è stata inizializzata dal metodo principale (). Costruisce un puntatore del nodo come null. Il metodo Crea è stato chiamato mentre leghi il puntatore nei suoi parametri. Il metodo show () è stato visualizzato nell'elenco collegato originale. D'altra parte, il metodo di reverse () è stato chiamato per invertire l'elenco collegato. L'elenco collegato invertito è stato visualizzato dopo.

Dopo la chiamata del metodo di creazione (), verrà eseguito il codice seguente. Sono stati effettuati due puntatori di tipo strutturale insieme a 2 numeri interi; L'utente aggiungerà un valore per un rispettivo nodo. Questo valore verrà assegnato al rispettivo nodo da un puntatore "temp". All'utente è stato chiesto di continuare ad aggiungere dati o smettere aggiungendo 1 o 0.

Il metodo inverso è stato qui per aggiungere inversa i dati di un elenco collegato. Il ciclo while è stato usato qui per invertire l'elenco collegato usando i suoi puntatori.

Il metodo show () è stato definito qui per stampare i dati aggiunti all'elenco collegato.

La compilazione e l'esecuzione sono state eseguite utilizzando gli stessi due comandi. L'utente inserisce il numero del nodo e il rispettivo valore. Dopo aver smesso, l'elenco collegato originale e invertito è stato visualizzato sullo schermo.

$ GCC Reverse.C
$ ./UN.fuori

Conclusione

Questo articolo è il migliore nella dimostrazione di invertire l'elenco collegato nella lingua C. L'inversione dell'elenco collegato contiene anche la creazione di un elenco collegato e la spinta dei dati in nodi. Alla fine, i metodi di visualizzazione sono stati utilizzati per visualizzare il contenuto in ordine originale e inverso.