4° Anno TEORIA 2. Allocazione dinamica della memoria | Page 32

10 : Allocazione dinamica della memoria Vers . 8.3 – Ottobre 2023
‣ 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 e dall ’ ultima posizione )
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 .
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