// array rappresentante la tabella dei cluster int fat[M]; int deframmenta (int start) { int dim=1; int succ=start; int count=0; bool consecutivo=true; int indice=0; // trova la dimensione del file while (fat[succ] != -1) { // se il file è già deframmentato non ho bisogno di deframmentarlo consecutivo=(fat[succ] == succ + 1) && consecutivo; succ=fat[succ]; dim++; } // se il file è già deframmentato restituisco start if (consecutivo) return start; // trova sequenza libera for (int i=0; i