#include <listadoppia.h>
Public Member Functions | |
int | numero () |
funzione che restituisce il numero di elementi. | |
listadoppia () | |
il costruttore. | |
~listadoppia () | |
il distruttore. | |
void | inserisci (int n) |
funzione che inserisce in coda alla lista. | |
int | estrai () |
funzione che estrae un elemento dalla testa della lista. | |
Protected Attributes | |
elem * | p0 |
puntatore alla testa. | |
elem * | p1 |
puntatore all'ultimo elemento. | |
int | numelem |
numero di elementi della lista. |
con listadoppia si intende una lista con doppio puntatore in ogni elemento (elem) e con un puntatore alla testa e un puntatore all'ultimo elemento, questa classe mi serve una volta aver letto le frequenze dei caratteri nei file per togliere dal vettore i caratteri che non compaiono mai, ho scelto una lista con puntatore ausiliario per ridurre la complessità, ogni volta che in v trovo un carattere con frequenza > 0 inserisco il suo indice dentro una listadoppia tramite la inserisci(), poi all'estrazione vado direttamente a leggere la frequenza del carattere corrispondente. viene utilizzata solo nella arrayfreq().
Definition at line 22 of file listadoppia.h.
|
il costruttore. non fa altro che settare p0 e p1 a 0 e numelem a 0; Complessità: O(1). Definition at line 8 of file listadoppia.cpp. |
|
il distruttore. cancella la lista, può essere necessario dato che essa occupa memoria dinamica, anche se alla fine di arrayfreq() essa dovrebbe risultare vuota; Complessità: O(n).
Definition at line 15 of file listadoppia.cpp. References p0. |
|
funzione che estrae un elemento dalla testa della lista. anche in questo caso non ho bisogno di ciclare, quindi non ho problemi di complessità; Complessità: O(1).
Definition at line 41 of file listadoppia.cpp. References numelem, p0, and p1. Referenced by compressore::arrayfreq(). |
|
funzione che inserisce in coda alla lista. ho impostato questa lista perché inserisse in coda e estraesse in testa, in questo modo non cambio l'ordine dei caratteri, essi compaiono con lo stesso ordine in cui comparivano in compressore::v, questa funzione viene eseguita senza cicli infatti ho 2 puntatori p0 e p1 e 2 puntatori per ogni struttura di tipo elem; Complessità: O(1).
Definition at line 26 of file listadoppia.cpp. References numelem, p0, and p1. Referenced by compressore::arrayfreq(). |
|
funzione che restituisce il numero di elementi. il campo numelem e privato e quindi non posso accederci dall'esterno, per questo utilizzo questa funzione; Complessità: O(1).
Definition at line 54 of file listadoppia.cpp. References numelem. Referenced by compressore::arrayfreq(). |