Python - Introduzione a DS

Panoramica della struttura dei dati

Le strutture dati sono concetti fondamentali dell'informatica che aiutano a scrivere programmi efficienti in qualsiasi lingua. Python è un linguaggio di scripting di alto livello, interpretato, interattivo e orientato agli oggetti utilizzando il quale possiamo studiare i fondamenti della struttura dei dati in un modo più semplice rispetto ad altri linguaggi di programmazione.

In questo capitolo studieremo una breve panoramica di alcune strutture di dati usate di frequente in generale e di come sono correlate ad alcuni tipi di dati python specifici. Ci sono anche alcune strutture di dati specifiche di python che sono elencate come un'altra categoria.

Strutture dati generali

Le varie strutture di dati in informatica sono divise sostanzialmente nelle due categorie mostrate di seguito. Discuteremo in dettaglio su ciascuna delle strutture di dati seguenti nei capitoli successivi.

Strutture dati di linea

Queste sono le strutture dati che memorizzano gli elementi dati in modo sequenziale.

  • Array: È una disposizione sequenziale di elementi di dati accoppiati con l'indice dell'elemento di dati.
  • Linked List: Ogni elemento di dati contiene un collegamento a un altro elemento insieme ai dati presenti in esso.
  • Stack: È una struttura dati che segue solo uno specifico ordine di funzionamento. LIFO (last in First Out) o FILO (First in Last Out).
  • Queue: È simile a Stack ma l'ordine di funzionamento è solo FIFO (First In First Out).
  • Matrix: Si tratta di una struttura dati bidimensionale in cui l'elemento dati è riferito da una coppia di indici.

Strutture dati non di linea

Queste sono le strutture di dati in cui non esiste un collegamento sequenziale di elementi di dati. Qualsiasi coppia o gruppo di elementi di dati possono essere collegati tra loro ed è possibile accedervi senza una sequenza rigorosa.

  • Binary Tree: È una struttura dati in cui ogni elemento dati può essere connesso a un massimo di altri due elementi dati e inizia con un nodo radice.
  • Heap: È un caso speciale di struttura dati ad albero in cui i dati nel nodo padre sono strettamente maggiori / uguali ai nodi figli o strettamente inferiori ai nodi figli.
  • Hash Table: È una struttura di dati composta da array associati tra loro utilizzando una funzione hash. Recupera i valori utilizzando le chiavi anziché l'indice da un elemento di dati.
  • Graph: .È una disposizione di vertici e nodi in cui alcuni dei nodi sono collegati tra loro tramite collegamenti.

Strutture dati specifiche di Python

Queste strutture di dati sono specifiche del linguaggio Python e offrono una maggiore flessibilità nella memorizzazione di diversi tipi di dati e un'elaborazione più rapida nell'ambiente Python.

  • List: È simile all'array con l'eccezione che gli elementi di dati possono essere di diversi tipi di dati. Puoi avere dati sia numerici che stringa in un elenco Python.
  • Tuple: Le tuple sono simili alle liste ma sono immutabili, il che significa che i valori in una tupla non possono essere modificati, possono solo essere letti.
  • Dictionary: Il dizionario contiene coppie chiave-valore come elementi di dati.

Nei prossimi capitoli impareremo i dettagli di come ciascuna di queste strutture di dati può essere implementata usando Python.