示例#1
0
        private void BellmanFord(object sender, RoutedEventArgs e)
        {
            var dialog = new Dijkstra();

            dialog.ShowDialog();

            int startNode = dialog.StartNode - 1;
            int endNode   = dialog.EndNode - 1;



            List <int> path = Directed.BellmanFord(Graph, startNode, endNode);

            string message = "Znaleziona sciezka : " + Environment.NewLine;

            if (path != null)
            {
                path.ForEach(n => message += (n + 1) + " ");
            }
            else
            {
                message = "Nie znaleziono sciezki";
            }

            MessageBox.Show(message);
        }
示例#2
0
        private void BellmanFordStart(object sender, RoutedEventArgs e)
        {
            var dialog = new Dijkstra(true);


            dialog.ShowDialog();

            int startNode = dialog.StartNode - 1;

            string message = "";

            for (int i = 0; i < Graph.NodesNr; ++i)
            {
                if (i == startNode)
                {
                    continue;
                }
                List <int> path = Directed.BellmanFord(Graph, startNode, i);

                message += string.Format("Node {0} : ", i + 1);
                if (path != null)
                {
                    path.ForEach(n => message += (n + 1) + " ");
                }
                else
                {
                    message += "brak sciezki";
                }

                message += Environment.NewLine;
            }

            MessageBox.Show(message);
        }
示例#3
0
        private void CalculateDijkstra(object sender, RoutedEventArgs e)
        {
            var dialog = new Dijkstra();

            dialog.ShowDialog();

            int startNode = dialog.StartNode - 1;
            int endNode   = dialog.EndNode - 1;

            List <int> path = PathFinding.Dijkstra(Graph, startNode, endNode);

            string message = "Znaleziona sciezka : " + Environment.NewLine;

            path.ForEach(n => message += (n + 1) + " ");

            MessageBox.Show(message);
        }