1 Cosa è una lista
Una lista è una collezione di elementi omogenei, cioè di elementi tra loro tutti uguali. A differenza dell’array, occupa in memoria una posizione qualsiasi, che tra l’altro può cambiare dinamicamente durante l’utilizzo della lista stessa.
2 Strumenti per creare una lista
Per questo tutorial andremmo a utilizzare strumenti come: free, puntatori e struct.
Le strutture, definibili con la parola chiave struct, permettono l’aggregazione di più variabili in un unico tipo.
Un puntatore è una variabile che contiene l’indirizzo di memoria di un’altra variabile.
free è il nome di una funzione delle librerie standard del linguaggio C (ma anche del linguaggio C++) e permette di deallocare in memoria.
L’utilizzo di tale funzione avviene come di seguito:
free(void puntr);
3 Cosa contiene una lista
Una lista:
- Può contenere uno o più campi di informazione che possono essere di ogni tipo (es. int, char, float, ecc.), e un campo “puntatore al nodo successivo (next)”;
- Ha il primo elemento della lista che è un puntatore a nodo di tipo Nodo*, quando la lista è vuota, questo puntatore è settato a NULL.
- Esempio di dichiarazione di una lista: Nodo *lista = NULL;
- L’ultimo nodo della lista ha il campo “next” settato a NULL

4 Struttura base di una lista lineare
Definizione della struttura Nodo:
Struct Nodo{
int info; //variabile che contiene l’informazione, puo essere di qualsiasi tipo(int,float,double…)
struct Nodo* next //Puntatore al prossimo elemento della lista
};
typedef struct Nodo Nodo;
5 Esempio di eliminazione in testa di un elemento in una lista lineare
Prototipo:
Nodo *eliminaInTesta(Nodo *list);
Esempio:
Nodo *eliminaInTesta(Nodo *list){
Nodo *aux = NULL; // puntatore
if(list != NULL){ // controlla se la lista ha elementi
aux = list->next; // Salva l’indirizzo della futura nuova testa( secondo elemento)
free(list); // libera in memoria il primo elemento della testa
list = aux; // Assegna alla lista la nuova testa
}
return list;
}
-
Algoritmo eliminazione di un elemento in testa a una lista lineare in CProdotto in vendita
€2.00€0.00
Programmer | Manager | Programmatore freelence
Stefano è iscritto presso L’università degli studi di Cagliari al corso di Informatica, appassionato del mondo delle cripto valute.