Exemplo n.º 1
0
        private void Visualize_Click(object sender, EventArgs e)
        {
            kruskalTextLabel.Text = "";
            ParseResults parsedResult = KruskalTextParser.ParseText(kruskalTextBox.Text);

            points = new Point[parsedResult.numberOfVertices];
            if (parsedResult.numberOfVertices > 0)
            {
                double angle = 360 / parsedResult.numberOfVertices;
                points[0] = new Point(60, anchor.Y);

                for (int i = 1; i < parsedResult.numberOfVertices; i++)
                {
                    points[i] = RotatePoint(points[0], anchor, angle * i);
                }
            }
            allEdges = parsedResult.allEdges;

            try
            {
                Graph graph = new Graph(parsedResult.numberOfVertices);
                foreach (Edge edge in allEdges)
                {
                    graph.AddEdge(edge.from, edge.to, edge.weight);
                }
                kruskalEdges = KruskalNode.Kruskal(graph);
                foreach (Edge edge in kruskalEdges)
                {
                    kruskalTextLabel.Text += "" + edge.from + " -> " + edge.to + " = " + edge.weight + "\n";
                }
            }
            catch
            {
                kruskalTextLabel.Text = "Couldn't execute Kruskal algorithm.";
            }

            panel1.Invalidate();
        }
Exemplo n.º 2
0
 private void LoadButton3_Click(object sender, EventArgs e)
 {
     kruskalTextBox.Text = KruskalTextParser.LoadFileText(Constants.FILE_PATH_3);
 }
Exemplo n.º 3
0
 private void SaveButton3_Click(object sender, EventArgs e)
 {
     KruskalTextParser.SaveFileText(Constants.FILE_PATH_3, kruskalTextBox.Text);
 }