La Codifica di Huffman è un algoritmo di codifica dell’entropia usato per la compressione di dati, basato sul principio di trovare il sistema ottimale per codificare stringhe basato sulla frequenza relativa di ciascun carattere. Albero di Huffman per la codifica della stringa “this is an example of a huffman tree“. Il Teorema di Shannon ci…

Read More

Seguendo l’esempio su come realizzare una lista doppiamente linkata in C, vediamo come implementare una lista dello stesso tipo utilizzando il linguaggio C++ e la programmazione object-oriented. Ricordiamo che una lista doppiamente linkata (detta anche lista doppiamente concatenata o lista bidirezionale) è una struttura dati dinamica composta da un insieme di elementi detti “nodi” collegati…

Read More

Un altro modo per scambiare dati tra processi UNIX è la memoria condivisa. Ogni memoria condivisa ha una chiave che la identifica in modo univoco. Quando un processo vuole utilizzare una memoria condivisa deve attaccarla al proprio spazio di indirizzamento, quando non desidera più utilizzarla può successivamente staccarla anche se essa continuerà ad esistere indipendentemente…

Read More

Questo è un esempio banale che mostra come implementare una semplice shell UNIX, non supporta i comandi che prendono uno o più parametri altrimenti bisognerebbe giocare un po’ di più con le stringhe. Sotto UNIX, tutti i processi nascono tramite una chiamata alla funzione fork() dal proprio processo padre, tramite la quale è possibile “sdoppiare”…

Read More