All pastes #487730 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-05-14 16:43 UTC
rendered paste body
while (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();
                    }
                }
            }
        }