Come creare una copia istantanea di una lista collegata

November 5

Come creare una copia istantanea di una lista collegata


Le liste concatenate sono strutture di dati che vengono create dinamicamente mentre il computer è in funzione. Questo significa memoria non è stata allocata prima dell'inizio del programma, e il programma ha creato la struttura come era necessario. Spesso è necessario creare una copia di una lista collegata a lavorare con un particolare problema senza distruggere l'originale. La seguente procedura deve essere eseguita solo da quelli con esperienza in strutture di dati del computer.

istruzione

1 Richiedi un nuovo puntatore per iniziare a costruire la vostra copia istantanea. I puntatori sono parole di memoria che sono solo abbastanza grande da contenere indirizzi di memoria. Effettuare il nuovo puntatore il punto di ingresso per la vostra copia istantanea, non importa la struttura della lista collegata si sta copiando. Una volta che avete il puntatore di partenza, si passerà attraverso la lista collegata fare una copia immediata di tutto ciò che si incontra.

2 Collegare i nodi della vostra copia istante per avere i puntatori in un nodo contengono l'indirizzo del nodo successivo nella lista. Mettere i dati che va nella lista collegata nei nodi. Ad esempio, in un database al IRS, i nodi possono contenere i record dei cittadini, con un record per ogni cittadino. Mettere uno o più puntatori in ogni record, come ad esempio indirizzi di altri record. Mettere un puntatore in ogni record se si desidera che le liste collegate ad essere liste attuali, code, o qualche altro tipo di struttura lineare. Mettere più di un puntatore in ogni record se si sta costruendo un albero. Utilizzare il layout della lista collegata si sta copiando per rendere la vostra copia istantanea.

3 Richiedere un nuovo indirizzo. Il metodo per fare questo dipende dalla lingua che si usa. Il sistema operativo sul vostro computer fornisce nuovi blocchi di memoria, insieme con l'indirizzo del pezzo in modo che possa fare riferimento. I suoi nuovi punti di indirizzo a un record vuoto. Copiare le informazioni dal primo record nella vecchia lista collegata nel primo record nella nuova lista collegata si stanno facendo (ad eccezione per il puntatore). Quando si arriva al puntatore, richiedere un nuovo puntatore e metti che nella lista collegata che si sta creando. Seguire il puntatore nella vecchia lista. Seguire il nuovo puntatore a un nuovo record vuoto e copiare le informazioni da un record a come prima. Continuare a fare questo fino a quando l'intero elenco viene copiato.

Consigli e avvertenze

  • Scrivi la procedura di copia lista collegata in funzione. L'ingresso alla funzione è l'indirizzo della lista collegata che si desidera copiare. L'output della funzione sarà l'indirizzo della copia. Se si scrive la funzione ricorsivamente, la funzione per lo più costituito da istruzioni per copiare i dati da un record all'altro.
  • Se la vostra lista collegata è un albero come la struttura, le registrazioni potrebbero contenere più di un puntatore. È necessario effettuare una chiamata ricorsiva per ogni puntatore. Questo farà sì che l'intero albero viene copiato.