Crea : φ → P che provvede a creare la pila vuota [ ) attraverso la seguente chiamata :
10 : Allocazione dinamica della memoria Vers . 9.0 – Ottobre 2024
Una premessa rotazionale : indichiamo
con [ ) |
una pila vuota ( con ‘[’ che indica il fondo fisso e con ‘)’ che indica la testa ) |
con [ P1 , P2 ,…. Pn ) |
una pila qualsiasi formata dai nodi P1 , P2 ,…. Pn con P1 in fondo e Pn in testa |
con N |
l ’ insieme dei possibili nodi di una pila |
con P |
l ’ insieme di tutte le possibili pile di nodi |
con φ |
l ’ insieme vuoto |
con Β |
l ’ insieme contenente i valori booleani VERO e FALSO |
In accordo con l ' ADT le operazioni possibili anche su questa struttura dati astratta vengono definite come funzioni matematiche che a fronte di uno o più valori in ingresso calcolano i relativi valori in uscita .
Secondo l ' ADT le principali operazioni per la struttura dati astratta PILA o STACK sono :
a ) la creazione di una nuova pila vuota per la quale utilizzeremo la funzione Crea così definita :
Crea : φ → P che provvede a creare la pila vuota [ ) attraverso la seguente chiamata :
Crea ( ) = [ )
b ) l ’ inserimento ( Push ) di un nodo che può avvenire esclusivamente in testa per il quale utilizzeremo la funzione Push
Graficamente
Push : P x N → P
che necessita di due parametri in ingresso : uno identifica la pila che stiamo considerando [ Pj ,.., Pk ) e l ’ altro il nodo Pi che vogliamo aggiungere in testa . La funzione restituirà la nuova pila ottenuta [ Pj ,.., Pk , Pi ).
La generica chiamata alla funzione sarà : Push ( [ Pj ,.., Pk ) , Pi ) = [ Pj ,.., Pk , Pi ).
Prima dell ’ operazione ( funzione ) Dopo l ’ operazione ( funzione )
Push del nodo Pi
|
Testa pila |
Pi |
Testa pila |
Pk
…
Pj
|
Fondo pila |
Pk
…
Pj
|
Fondo pila |
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 35