Definizione di Stack in Programmazione
vgajic/Getty Images
Uno stack è una struttura a matrice o elenco di chiamate di funzione e parametri utilizzati nella moderna programmazione dei computer e nell'architettura della CPU. Simile a una pila di piatti in un ristorante a buffet o in una caffetteria, gli elementi in una pila vengono aggiunti o rimossi dalla cima della pila, in un ordine last in first, first out o LIFO.
Il processo di aggiunta dei dati a uno stack viene definito push, mentre il recupero dei dati da uno stack viene chiamato pop. Ciò si verifica nella parte superiore della pila. Un puntatore dello stack indica l'estensione dello stack, regolandosi quando gli elementi vengono inseriti o inseriti in uno stack.
Quando viene chiamata una funzione, l'indirizzo dell'istruzione successiva viene inserito nello stack.
Quando la funzione esce, l'indirizzo viene estratto dal file pila e l'esecuzione continua a quell'indirizzo.
Azioni in pila
Esistono altre azioni che possono essere eseguite su uno stack a seconda dell'ambiente di programmazione.
- Peek: consente l'ispezione dell'elemento più in alto su una pila senza effettivamente rimuovere l'elemento.
- Swap: Detto anche scambio, le posizioni dei due elementi in cima allo stack vengono scambiate, il primo elemento diventa il secondo e il secondo il primo.
- Duplica: l'elemento più in alto viene estratto dalla pila e quindi reinserito nella pila due volte, creando un duplicato dell'elemento originale.
- Ruota: Detto anche rotolo, specifica il numero di elementi in una pila che vengono ruotati nel loro ordine. Ad esempio, la rotazione dei primi quattro elementi di una pila sposterebbe l'elemento più in alto nella quarta posizione mentre i tre elementi successivi salgono di una posizione.
Lo stack è anche noto come ' Last In First Out (LIFO)'.
Esempi: In C e C++ , variabili dichiarati localmente (o auto) sono archiviati nello stack.