10: Allocazione dinamica della memoria Vers. 9.3 – Dicembre 2025
‣ di un qualsiasi nodo utilizzeremo la funzione CancPos CancPos: S x Z + → S x N
che necessita di due parametri in ingresso: uno contenente la sequenza che stiamo considerando [ Pj,.., Pi,.., Pk ] ed il secondo contenente la posizione del nodo da eliminare. La funzione restituirà la nuova sequenza ottenuta eliminando il nodo [ Pj,.., Pk ], assieme al nodo Pi eliminato nella posizione m specificata( con m diversa dalla prima posizione e dall’ ultima per le quali esistono le operazioni apposite)
La generica chiamata alla funzione sarà: CancPos( [ Pj,.., Pi,.., Pk ], m) = [ Pj,.., Pk ]., Pi
Graficamente Prima dell’ operazione( funzione) Dopo l’ operazione( funzione)
TESTA della sequenza
Pj
Posizione m
Pi
FONDO della sequenza
Pk
TESTA della sequenza
Pj
NODO eliminato
FONDO della sequenza
Pi
Pk
N. B. Ovviamente tale funzione sarà possibile se la lista ha almeno n nodi con n ≥3 a partire dalla posizione 2 fino alla posizione n-1.
Per cancellare un nodo nelle posizioni di TESTA e FONDO occorrerà utilizzare le funzioni specifiche introdotte e MAI PER NESSUN MOTIVO la funzione CancPos()
d) il test di sequenza vuota: per il quale utilizzeremo la funzione TestVuota TestVuota: S → B
che necessita di un solo parametro in ingresso ossia la sequenza che vogliamo controllare essere vuota oppure no La funzione restituirà:
- il valore booleano VERO se la sequenza considerata è VUOTA- il valore booleano FALSO se la sequenza considerata è PIENA.
La generica chiamata alla funzione sarà: TestVuota( [ Pj,.., Pk ]) = FALSO TestVuota( [ ]) = VERO
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 32