4/17/2007
Modern Programming Languages - Chapter 14
if
(lag==NULL) { // ours will be first free
freeStart = addr;
memory[addr+1] = p;
}
else if (lag+memory[lag]==addr) { // block before
is
// adjacent to ours
memory[lag] += memory[addr]; // merge ours into it
memory[lag+1] = p;
}
else { // neither: just a simple insertion
memory[lag+1] = addr;
memory[addr+1] = p;
}
}
A Java
Solution