Anonymous
public text v1 · immutablewhile (Vertices.Count > 0)
{
object node;
node = Vertices[0];
Vertices.Remove(node);
tip.Enqueue(node);
//vrogxos gia euresh twn clusters
List<ArrayList> temp = new List<ArrayList>();
bool flag = true;
while (tip.Count > 0)
{
int y;
y = Convert.ToInt32(tip.Dequeue());
//elegxos gia louparisma, an exoume kuklo exoume epanalhpsh,
//me th lista auth apofeygetai to loop
//ka8e komvos grafetai mono mia fora se ena cluster kai h visited perilamvanei olous tous komvous
if (!visited.Contains(y))
{
visited.Add(y);
for (int k = 0; k < weights.GetLength(0); k++)
{
if (weights[y, k] >=1)
{
tip.Enqueue(k);
Vertices.Remove(k);
//to cluster ksekinaei twra dhmiourgia toswn arraylists osa kai ta prwta links toy y
if (flag)
{
ArrayList tmp = new ArrayList();
tmp.Add(y);
tmp.Add(k);
temp.Add(tmp);
}
else
{
foreach (ArrayList ar in temp)
{
if ((ar.Contains(y))&& (!ar.Contains(k)))
{
ar.Add(k);
}
}
}
}
}
flag = false;
}
}
if (visited.Count > 0)
{
foreach (object page in visited)
{
sw.Write(page.ToString() + " ");
}
sw.WriteLine();
clusters++;
foreach (ArrayList ar in temp)
{
foreach (object page in ar)
{
sl.Write(page.ToString() + " ");
}
sl.WriteLine();
}
}
visited.Clear();
temp.Clear();
}
}
}
}