1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-22 10:44:17 +00:00
appunti-steffo/2 - Algoritmi e strutture dati/1 - Appunti/15 - Pila.md

1.1 KiB

Pila (Stack)

Una pila è una struttura dati contenente valori omogenei.

Proprietà

  • I dati vi possono essere aggiunti solo tramite il metodo push()
  • I dati possono essere estratti solo tramite il metodo pop()
    • Verranno restituiti i valori inseriti secondo la strategia Last In, First Out (l'ultimo inserito sarà il primo a essere estratto).

Ci si può immaginare una pila di libri, da cui si può solo prendere un libro alla volta, quello più in alto.

Metodi

class Stack:
    def __init__(self): "Crea una nuova pila."
    def is_empty(self) -> bool: "Restituisce vero se la pila è vuota."
    def push(self, data): "Aggiunge un dato alla pila."
    def top(self) -> ...: "Restituisce il primo dato della pila."
    def pop(self) -> ...: "Restituisce il primo dato della pila e lo rimuove."

Implementazione tramite lista

Utilizzando una lista possiamo realizzare una pila!

La direzione dei puntatori sarà dall'ultimo al primo, che non punterà più a nessuno.

Il costo di tutti i metodi è Θ(1)!

Visualizzazione

visualgo.net