Che cos'è la struttura dati lineare? Elenco delle strutture dati spiegate
Pubblicato: 2021-06-18Le strutture dati sono i dati strutturati in modo da essere utilizzati in modo efficiente da parte degli utenti. Poiché il programma per computer si basa enormemente sui dati e richiede anche un grande volume di dati per le sue prestazioni, quindi è estremamente importante organizzare i dati. Questa disposizione dei dati in strutture organizzate è nota come struttura dati.
La memorizzazione dei dati nelle strutture dati consente l'accesso, le modifiche e altre operazioni che possono essere trasferite sugli elementi di dati. La disposizione dei dati avviene principalmente in un computer e quindi sono necessari algoritmi adeguati per portare avanti le operazioni con le strutture dati. Ridurre lo spazio e diminuire la complessità temporale dei diversi compiti è l'obiettivo principale delle strutture dati.
I punti più importanti in una struttura dati sono:
- Una grande quantità di dati è organizzata attraverso ogni tipo di struttura dati.
- Un principio particolare è seguito da ogni struttura di dati.
- Il principio di base della struttura dei dati dovrebbe essere seguito anche se vengono eseguite operazioni sulla struttura dei dati.
La disposizione dei dati all'interno di una struttura dati può seguire ordini diversi. Una struttura dati è quindi classificata in base alla modalità di disposizione dei dati. Fondamentalmente, ci sono due tipi di struttura dei dati .
- Struttura dei dati primitiva
- Struttura dei dati non primitiva
Il tipo primitivo di struttura dati include le strutture dati predefinite come char, float, int e double.
Le strutture dati non primitive vengono utilizzate per memorizzare la raccolta di elementi. Questa struttura di dati può essere ulteriormente classificata in
- Struttura dati lineare
- Struttura dati non lineare.
Leggi: Impara le differenze tra la struttura dei dati lineare e non lineare
In questo articolo, discuteremo principalmente della struttura dei dati che memorizza i dati in modo lineare.
Sommario
Struttura dati lineare
È un tipo di struttura dati in cui la disposizione dei dati segue un andamento lineare. Gli elementi di dati sono disposti linearmente in modo tale che l'elemento sia direttamente collegato ai suoi elementi precedenti e successivi. Poiché gli elementi vengono archiviati in modo lineare, la struttura supporta l'archiviazione di dati a livello singolo. E quindi, l'attraversamento dei dati è ottenuto attraverso un'unica corsa.
Caratteristiche
- È un tipo di struttura dati in cui i dati vengono archiviati e gestiti in una sequenza lineare.
- Gli elementi di dati nella sequenza sono collegati uno dopo l'altro.
- L'implementazione della struttura lineare dei dati nella memoria di un computer è facile poiché i dati sono organizzati in sequenza.
- Matrice, coda. Stack, elenco collegato, ecc. sono esempi di questo tipo di struttura.
- Gli elementi di dati memorizzati nella struttura di dati hanno una sola relazione.
- L'attraversamento degli elementi di dati può essere eseguito in un'unica corsa poiché gli elementi di dati sono archiviati in un unico livello.
- C'è uno scarso utilizzo della memoria del computer se viene implementata una struttura che memorizza i dati in modo lineare.
- Con l'aumento delle dimensioni della struttura dati, la complessità temporale della struttura aumenta.
Queste strutture possono quindi essere riassunte come un tipo di struttura dati in cui gli elementi sono memorizzati in sequenza e seguono l'ordine in cui:
- È presente solo un primo elemento che ha un elemento successivo .
- È presente solo un ultimo elemento che ha un elemento precedente .
- Tutti gli altri elementi nella struttura dati hanno un elemento precedente e uno successivo
Elenco di struttura dati in un tipo lineare di struttura dati
1. Matrice
L'array è quel tipo di struttura che memorizza elementi omogenei in posizioni di memoria contigue. Gli stessi tipi di oggetti vengono archiviati in sequenza in un array. L'idea principale di un array è che più dati dello stesso tipo possono essere archiviati insieme. Prima di memorizzare i dati in un array, è necessario definire la dimensione dell'array. È possibile accedere o modificare qualsiasi elemento nell'array e gli elementi archiviati vengono indicizzati per identificarne la posizione.
Un array può essere spiegato con l'aiuto di un semplice esempio di memorizzazione dei voti per tutti gli studenti di una classe. Supponiamo che ci siano 20 studenti, quindi la dimensione dell'array deve essere indicata come 20. I voti di tutti gli studenti possono quindi essere archiviati nell'array creato senza la necessità di creare variabili separate per i voti per ogni studente. Il semplice attraversamento dell'array può portare all'accesso degli elementi.
2. Elenco collegato
L'elenco collegato è quel tipo di struttura dati in cui gli oggetti separati vengono archiviati in sequenza. Ogni oggetto memorizzato nella struttura dati avrà i dati e un riferimento all'oggetto successivo. L'ultimo nodo dell'elenco collegato ha un riferimento a null. Il primo elemento dell'elenco collegato è noto come capo dell'elenco. Esistono molte differenze tra un elenco collegato e gli altri tipi di strutture dati. Questi sono in termini di allocazione di memoria, struttura interna della struttura dati e operazioni eseguite sull'elenco collegato.
Raggiungere un elemento in un elenco collegato è un processo più lento rispetto agli array poiché l'indicizzazione in un array aiuta a localizzare l'elemento. Tuttavia, nel caso di una lista concatenata, il processo deve iniziare dalla testata e attraversare l'intera struttura fino a raggiungere l'elemento desiderato. Al contrario, il vantaggio dell'utilizzo di elenchi collegati è che l'aggiunta o la cancellazione di elementi all'inizio può essere eseguita molto rapidamente.
Esistono tre tipi di elenchi collegati:
- Single Linked List: Questo tipo di struttura ha l'indirizzo o il riferimento del nodo successivo memorizzato nel nodo corrente. Pertanto, un nodo che all'ultimo ha l'indirizzo e il riferimento come NULL. Esempio: A->B->C->D->E->NULL.
- Un doppio elenco collegato : come suggerisce il nome, ogni nodo ha due riferimenti ad esso associati. Un riferimento indirizza al nodo precedente mentre il secondo punta al nodo successivo. L'attraversamento è possibile in entrambe le direzioni in quanto è disponibile il riferimento per i nodi precedenti. Inoltre, per l'eliminazione non è richiesto l'accesso esplicito. Esempio: NULL<-A<->B<->C<->D<->E->NULL.
- Elenco collegato che è circolare: i nodi in un elenco collegato circolare sono collegati in modo da formare un cerchio. Poiché l'elenco collegato è circolare, non c'è fine e quindi nessun NULL. Questo tipo di elenco collegato può seguire la struttura sia singolarmente che doppiamente. Non esiste un nodo iniziale specifico e qualsiasi nodo dei dati può essere il nodo iniziale. Il riferimento dell'ultimo nodo punta verso il primo nodo. Esempio: A->B->C->D->E.
Le proprietà di un elenco collegato sono:
- Orario di accesso: O(n)
- Tempo di ricerca: O(n)
- Elemento aggiuntivo: O(1)
- Eliminazione di un elemento: O(1)
3. Impila
Lo stack è un altro tipo di struttura in cui gli elementi memorizzati nella struttura dei dati seguono la regola di LIFO (last in, first out) o FILO (First In Last Out). Due tipi di operazioni sono associati a uno stack, ovvero push e pop. Push viene utilizzato quando un elemento deve essere aggiunto alla raccolta e pop viene utilizzato quando l'ultimo elemento deve essere rimosso dalla raccolta. L'estrazione può essere eseguita solo per l'ultimo elemento aggiunto.
Le proprietà di una pila sono:
- Elemento aggiuntivo: O(1)
- elemento eliminante: O(1)
- Tempo di accesso: O(n) [caso peggiore]
- Solo un'estremità consente di inserire ed eliminare un elemento.
Esempi dello stack includono la rimozione della ricorsione. Negli scenari in cui una parola deve essere invertita o durante l'utilizzo di editor quando l'ultima parola digitata verrà rimossa per prima (usando un'operazione di annullamento), vengono utilizzati gli stack. Se vuoi provare interessanti progetti di struttura dati, clicca per leggere questo articolo.
4. Coda
La coda è il tipo di struttura dati in cui gli elementi da memorizzare seguono la regola del First In First Out (FIFO). L'ordine particolare viene seguito per eseguire le operazioni richieste sugli elementi. La differenza di una coda da quella di uno stack sta nella rimozione di un elemento, in cui l'oggetto aggiunto più di recente viene rimosso per primo in uno stack. Mentre, nel caso di una coda, l'elemento aggiunto per primo viene rimosso per primo.
Sia l'estremità della struttura dei dati viene utilizzata per l'inserimento che la rimozione dei dati. Le due operazioni principali che regolano la struttura della coda sono l'accodamento e l'annullamento della coda. Enqueue si riferisce al processo in cui l'inserimento di un elemento è consentito per la raccolta di dati e dequeue si riferisce al processo in cui è consentita la rimozione di elementi, che in questo caso è il primo elemento nella coda.
Le proprietà di una coda sono:
- Inserimento di un elemento: O(1)
- Eliminazione di un elemento: O(1)
- Orario di accesso: O(n)
Esempio della coda: Simile a quelle code fatte durante l'attesa del bus o ovunque, anche la struttura dei dati segue lo stesso schema. Possiamo immaginare una persona che aspetta l'autobus e si trova in prima posizione come la persona che è arrivata prima in coda. Questa persona sarà la prima che salirà su un autobus, cioè uscirà dalla coda. Le code vengono applicate quando più utenti condividono le stesse risorse e devono essere servite in base a chi è arrivato per primo sul server.
Conclusione
L'aumento delle dimensioni dei dati ha reso necessario l'uso efficiente delle strutture dati nei programmi per computer. I dati se non organizzati in modo strutturato, lo svolgimento dei compiti sugli elementi diventa difficile.
Per un'operazione senza problemi, è sempre importante organizzarla in modo che le operazioni facili ed efficaci possano essere eseguite da programmi per computer. Se gli elementi di dati sono organizzati in ordine sequenziale, allora è noto come una struttura di dati lineare mentre se gli elementi di dati sono disposti in modo non lineare, è definita una struttura non lineare.
È stata osservata un'ampia applicazione della struttura dei dati nei linguaggi di apprendimento automatico, problemi della vita reale, ecc. Le persone che sognano di lavorare in questo campo dovrebbero essere in grado di padroneggiare questi concetti.
Se vuoi saperne di più, dai un'occhiata al programma upGrad Executive PG in Data Science che fornisce una piattaforma per trasformarti in data scientist di successo. Progettato per qualsiasi professionista di livello medio, il corso di data science ti esporrà a tutte le conoscenze teoriche e pratiche necessarie per il tuo successo. Allora perché aspettare altre opzioni, quando il successo è a portata di clic. Se è necessaria assistenza, saremo felici di aiutarti.
Di seguito vengono illustrate le differenze significative tra le strutture dati lineari e non lineari: I seguenti punti elaborano i modi in cui gli elenchi collegati sono molto più efficienti degli array: Le operazioni comuni possibili che possono essere eseguite in tutte le strutture di dati lineari includono attraversamento, inserimento, eliminazione, modifica, operazione di ricerca e operazione di ordinamento.Qual è la differenza tra strutture dati lineari e non lineari?
Struttura dati lineare -
1. Nelle strutture dati lineari, ogni elemento è connesso linearmente tra loro con riferimento all'elemento successivo e precedente.
2. L'implementazione è abbastanza semplice in quanto è coinvolto un solo livello.
3. Lo spreco di memoria è molto più comune nelle strutture dati lineari.
4. Stack, code, array ed elenchi collegati sono tutti esempi di strutture dati lineari.
Struttura dei dati non lineare -
1. Nelle strutture dati non lineari, gli elementi sono collegati in modo gerarchico.
2. L'implementazione è molto più complessa poiché sono coinvolti più livelli.
3. La memoria viene consumata saggiamente e non c'è quasi nessuno spreco di memoria.
4. Grafici e alberi sono esempi di strutture dati non lineari. In che modo gli elenchi collegati sono più efficienti degli array?
un. Allocazione dinamica della memoria
La memoria di un elenco collegato è posizionata dinamicamente, il che significa che non è necessario inizializzare la dimensione e può essere espansa o ridotta in qualsiasi momento senza implicare alcuna operazione esterna.
D'altra parte, gli array vengono allocati staticamente e la dimensione deve essere inizializzata. Una volta creata, la dimensione non può essere modificata.
B. Inserimento e cancellazione
Poiché un elenco collegato viene creato dinamicamente, operazioni come l'inserimento e l'eliminazione sono molto più convenienti.
c . Nessuno spreco di memoria
Non vi è alcuno spreco di memoria in un elenco collegato poiché tutti gli elementi vengono inseriti dinamicamente. E dopo la cancellazione di un elemento, possiamo liberarne la memoria. Quali sono le operazioni più comuni eseguite nelle strutture dati lineari?
Queste operazioni sono riconosciute con nomi diversi in diverse strutture di dati. Ad esempio, le operazioni di inserimento ed eliminazione sono note come operazioni Push e Pop in Stack, mentre sono denominate operazioni di accodamento e rimozione dalla coda in Queue.
Possono esserci anche altre operazioni come l'unione e l'operazione vuota per verificare se la struttura dei dati è vuota o meno.