示例#1
0
        private void button1_Click(object sender, EventArgs e)
        {
            //Ini adalah tomboll trigger untuk memanggil animasi dan algoritma dfs
            //Inisiasi
            button2.Enabled = true;
            button3.Enabled = true;
            DFS_Sort algoritmaDFS = new DFS_Sort(resultGraph.getSize());
            //Mulai melakukan dfs
            int time = 1;

            for (int i = 0; i < resultGraph.getSize(); i++)
            {
                if (!algoritmaDFS.isVerticeVisited(i))
                {
                    algoritmaDFS.Search(resultGraph, i, ref time);
                }
            }
            algoritmaDFS.makeSolution();

            //Melakukan animasi dfs dengan memanfaatkan track record
            for (int i = 0; i < algoritmaDFS.getOrderCount(); i++)
            {
                bool isEnd             = algoritmaDFS.isVerticeOrderEnd(i);
                int  currentNode       = algoritmaDFS.getVerticeOrder(i);
                Node currentNodeObject = graph.FindNode(pemetaanIndex[currentNode]);
                if (!isEnd)
                {
                    //Update time stamp
                    selfEdge[currentNode].Attr.Label = (i + 1).ToString() + "/";
                    currentNodeObject.Attr.Fillcolor = Microsoft.Glee.Drawing.Color.Yellow;
                }
                else
                {
                    selfEdge[currentNode].Attr.Label = selfEdge[currentNode].Attr.Label + (i + 1).ToString();
                }
                if (i != 0)
                {
                    int  previousNode       = algoritmaDFS.getVerticeOrder(i - 1);
                    Node previousNodeObject = graph.FindNode(pemetaanIndex[previousNode]);

                    previousNodeObject.Attr.Fillcolor = Microsoft.Glee.Drawing.Color.Red;
                }
                //Melakukan update gambar
                viewer.Graph = graph;
                viewer.Update();
                System.Threading.Thread.Sleep(waktuDelay);
            }
            //Menyimpan solusi
            solution = algoritmaDFS.getAllSolution();


            //form.ShowDialog();
        }