Пример #1
0
        public void paintingProcess()
        {
            Vertex[] aList = new Vertex[adjlists.Length];

            for (int v = 0; v < adjlists.Length; v++)
            {
                int count = 0;
                for (Neighbor nbr = adjlists[v].adjlist; nbr != null; nbr = nbr.next)
                {
                    count += 1;
                }

                adjlists[v].nbrNumber = count;

                aList[v] = adjlists[v];
            }

            for (int i = 0; i < aList.Length - 1; i++)
            {
                for (int j = 1; j < aList.Length - i; j++)
                {
                    if (aList[j].nbrNumber < aList[j - 1].nbrNumber)
                    {
                        Vertex gecici = aList[j - 1];
                        aList[j - 1] = aList[j];
                        aList[j]     = gecici;
                    }
                }
            }

            for (int i = aList.Length - 1; i >= 0; i--)
            {
                Console.WriteLine(aList[i].name);
            }



            int colour = 0;

            for (int v = aList.Length - 1; v >= 0; v--)
            {
                Console.WriteLine(".....");

                if (aList[v].colour != 0)
                {
                }
                else
                {
                    colour++;

                    aList[v].colour = colour;

                    Console.WriteLine("En Büyük = " + aList[v].name);

                    for (Neighbor nbr = aList[v].adjlist; nbr != null; nbr = nbr.next)
                    {
                        Console.WriteLine("\n" + adjlists[nbr.vertexNum].name);

                        for (Neighbor nbrN = adjlists[nbr.vertexNum].adjlist; nbrN != null; nbrN = nbrN.next)
                        {
                            if (aList[v].colour >= 5)
                            {
                                aList[v].colour = buyukKucuk(adjlists, nbrN);
                            }

                            Console.WriteLine("\t" + adjlists[nbrN.vertexNum].name);



                            if (adjlists[nbrN.vertexNum].colour == 0 && komsulukAra(aList, adjlists, v, nbrN) == false && komsudaAra(adjlists, nbrN, colour) == true)
                            {
                                adjlists[nbrN.vertexNum].colour = aList[v].colour;

                                Console.WriteLine("\t" + "-" + adjlists[nbrN.vertexNum].name);
                            }
                        }
                    }
                }
            }

            for (int v = 0; v < adjlists.Length; v++)
            {
                Console.WriteLine(adjlists[v].name + "====" + adjlists[v].colour);
            }
        }