private void btnChayTuDong_Click(object sender, EventArgs e) { if (Check()) { // kiểm tra time delay int timeDelay = 0; try { timeDelay = Int32.Parse(txtDelay.Text); if (timeDelay < 0) { MessageBox.Show("Time delay phải là số nguyên dương", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } catch { MessageBox.Show("Time delay phải là số nguyên dương", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } btnTamDung.Enabled = true; btnKetThuc.Enabled = true; btnBatDauChayTungBuoc.Enabled = false; listDoThi = Kruskal.Run(Data.Data.graph_Kruskal); index = 0; timer.Enabled = true; timer.Interval = timeDelay; timer.Start(); return; } }
public void TestCase4ShouldPass() { //var textreader = new StreamReader(typeof(PrimTests).Assembly.GetManifestResourceStream("Tests.largeEWG.txt")); var result = Kruskal.Run(ReadLines("c:\\work\\largeEWG.txt"));//GetLines(textreader)); Assert.AreEqual(new Decimal(647.66306955), result); }
private void btnBatDauChayTungBuoc_Click(object sender, EventArgs e) { if (btnBatDauChayTungBuoc.Text == "Bắt đầu chạy từng bước") { if (Check()) { listDoThi = Kruskal.Run(Data.Data.graph_Kruskal); index = 0; HienThiDoThi(); btnChayTuDong.Enabled = false; btnPrev.Enabled = true; btnNext.Enabled = true; btnStart.Enabled = true; btnEnd.Enabled = true; btnBatDauChayTungBuoc.Text = "Kết thúc chạy từng bước"; } return; } if (btnBatDauChayTungBuoc.Text == "Kết thúc chạy từng bước") { btnBatDauChayTungBuoc.Text = "Bắt đầu chạy từng bước"; btnChayTuDong.Enabled = true; btnPrev.Enabled = false; btnNext.Enabled = false; btnStart.Enabled = false; btnEnd.Enabled = false; return; } }
static void Main(string[] args) { var graph = new Graph <int>(); var nodes = new List <Node <int> >(); var edges = new List <Edge <int> >(); while (true) { Console.Write("Додати нову вершину?\n-> "); if (Console.ReadLine() == "y") { nodes.Add(new Node <int>() { Value = 1 + nodes.Count }); Console.WriteLine($"Додали вершину {nodes.Last().ToString()}"); } else { break; } } while (true) { Console.Write("Додати нове ребро?\n-> "); if (Console.ReadLine() == "y") { Console.Write("Номер першої вершини\n-> "); int node1Num = Int32.Parse(Console.ReadLine()); Console.Write("Номер другої вершини\n-> "); int node2Num = Int32.Parse(Console.ReadLine()); Console.Write("Вага ребра\n-> "); int weight = Int32.Parse(Console.ReadLine()); edges.Add(new Edge <int>() { Node1 = nodes[node1Num - 1], Node2 = nodes[node2Num - 1], Weight = weight }); } else { break; } } graph.Nodes = nodes; graph.Edges = edges; Console.WriteLine("Алгоритм Краскала"); var res = Kruskal.Run(graph); ShowCarcass(res); Console.WriteLine("Алгоритм Прима"); var resprim = Prim.Run(graph); ShowCarcass(resprim); Console.ReadLine(); }
private static int RunKruskal(Vertex[] vertices) { foreach (Vertex v in vertices) { v.Reset(); } return(Kruskal.Run(vertices).Sum(e => e.Weight)); }
async void _Kruskal() { Logs.Add(new LogViewModel("KruskalClicked")); await exactStop(); var results = Kruskal.Run(_graph); changeColor(results, Colors.Red); }
public void TestCase2ShouldPass() { var results = new List <decimal>(); for (int i = 0; i < 100; i++) { var result = Kruskal.Run(File.ReadLines("c:\\temp\\homework2_1_2_test2.txt")); results.Add(result); } var minresult = results.Min(); Assert.AreEqual(new Decimal(10.46351), minresult); }
public void TestCase3ShouldPass() { var results = new List <decimal>(); for (int i = 0; i < 100; i++) { var result = Kruskal.Run(File.ReadLines("c:\\temp\\tinyEWG.txt")); Console.WriteLine("итого: {0}", result); results.Add(result); } var minresult = results.Min(); Assert.AreEqual(new decimal(1.81), minresult); }
public void Solve() { var N = NextInt(); var kruskal = new Kruskal(N); var xlist = new List <ti2>(); var ylist = new List <ti2>(); for (int i = 0; i < N; i++) { xlist.Add(NextInt(), i); ylist.Add(NextInt(), i); } xlist = xlist.OrderBy(x => x.Item1).ToList(); ylist = ylist.OrderBy(x => x.Item1).ToList(); var list = new List <ti3>(); for (int i = 0; i < N - 1; i++) { { var s = xlist[i]; var t = xlist[i + 1]; kruskal.Add(s.Item2, t.Item2, t.Item1 - s.Item1); } { var s = ylist[i]; var t = ylist[i + 1]; kruskal.Add(s.Item2, t.Item2, t.Item1 - s.Item1); } } kruskal.Run().WL(); return; }
public void TestCase1ShouldPass() { var result = Kruskal.Run(File.ReadLines("c:\\temp\\homework2_1_2_test.txt")); Assert.AreEqual(-16, result); }