Algorithms
First fit



P= freeblock;
alloc = null; g =null;
while (p ! =null && size (p) g =p;
p =next ( p );
} /* end while * /
if ( p ! = null ) { / * there is a block large enough * /
s = size ( p);
alloc = p + s - n; / * alloc contains the address * /
/ * of the desired block */ I f ( s = = n)
/* remove the block from the free list */
if ( g = = null )
freeblock = next ( p);
else
next (g) = next (p);
else / * adjust the size of the remaning * /
/* free block
*/ size ( p ) = s -n;
} /* end if * /
Best fit

p =free block ;
/* p is used to travers th free list */ q = null ; /* q is one block behind p
*/ r = null;
/* r points to the desired block */ rq = null ;
/* rq is one block behind r */ resize = memsize + 1;
alloc = null;
while ( p != null)
{ if(size(p) >= n && size(p) < rsize)
{ r =p;
rq = q;
rsize = size(p);
rsize = size(p);
} q = p;
p = next (p);
} if ( r != null)
{ alloc = r+ rsize - n;
if ( rsize == n)
if (rq==null)
freeblock = next(r);
else
next (rq) =next (r);
else
size(r) = rsize - n;
}