27 febbraio 2013Ciao ragazzi, in questa dodicesima parte del corso completo di C che si tiene su questo sito, voglio parlarvi delle liste, un costrutto bellissimo e molto potente del C. E' possibile utilizzare i puntatori per accedere a variabili di tipo struct in questo modo:
Dopo questa piccola introduzione, passo a dare la definizione di una lista: una lista è un insieme finito di elementi dello stesso tipo, caratterizzata da un elemento in testa (head) e da un elemento in coda che la termina (tail). Dal momento, però, che il tipo lista in C non esiste, bisogna costruirselo da soli, partendo da puntatori e strutture.
Il concetto di lista può essere così disegnato (per avere un'idea generale): Per dirlo in modo molto basilare e anche sotto alcuni punti di vista sbagliato, voglio farvi capire che ogni elemento della lista è composto da due parti:
Vi faccio quindi adesso vedere come si implementa il C il tipo lista: DEFINIRE LE FUNZIONI PRIMITIVE
Le principali operazioni che si possono compiere su una lista sono:
Per riempire una lista, quindi, dovete creare prima una lista vuota, poi inserite il primo valore e indirizzate quindi il puntatore all'elemento successivo: Dato che se volessimo utilizzare in ogni programma questa modalità di scrittura a puntatori sarebbe solo uno spreco di tempo e di memoria, è utile crearsi determinate funzioni primitive da utilizzare ogni volta che sono necessarie; queste funzioni, come ho già detto, permettono di eseguire le principali operazioni sulle liste.
LA FUNZIONE CONS()
La funzione cons() si occupa di inserire un elemento in testa alla lista, ed è così definita: list cons(Element, list); LA FUNZIONE HEAD()
La funzione head() restituisce l'elemento in testa alla lista, ed è così definita: Element head(list); LA FUNZIONE TAIL()
La funzione tail() restituisce invece la coda della lista, ed è così definita: list tail(list); LA FUNZIONE EMPTYLIST() E LA EMPTY()
La funzione emptyList() si occupa di creare una nuova lista vuota, mentre la funzione empty() si occupa di controllare se una lista è vuota o no, e sono così definite: Piccolo esempio di un programma che utilizza tutte queste funzioni:
Nel file list.c qui di seguito sono presenti le funzioni primitive viste prima e inoltre anche queste, che servono al programma:
list.cVi lascio adesso da scaricare i file di questo programma; esercitatevi tanto sulle liste che sono veramente molto importanti!!
Se volete esercitarvi con degli esercizi, andate qui: Esercizi sulle liste.
Pumo Ciao a tutti, Pumo Matteo |
Social Aiutate a diffondere il sito, cliccando qui Segui @WInformatic Autore Salve a tutti! Mi chiamo Pumo Matteo. Per saperne di più: Biografia Categorie
|