begin
 level 0;
 nodes getNodes(level);
getGammaValue(level);
 clusters createClusters ;
while clusters   do
  create one node on the next level for each cluster;
  create edges between clusters and nodes;
  level level + 1;
  nodes getNodes(level);
   getGammaValue(level);
  clusters createClusters ;
end
end
Algorithm 2: createMultiLevelClusters.