Кратчайший путь с помощью BFS через матрицу смежности

Есть матрица смежности, состоящая из весов(расстояний между вершинами). Нужно с помощью bfs найти кратчайшее расстояние от одной вершины до другой.

  int[,] matrix =
        {
        { 0, 4, 8, 0},
        { 4, 0, 2, 0},
        { 8, 2, 0, 0},
        { 0, 0, 0, 0},
        };
        void BFS(int[,] matrix, int start, int end)
        {
            int[] dist = new int[1000];
            bool[] mark = new bool[1000];
            dist[start] = 0;
            Queue<int> Q = new Queue<int>();
            Q.Enqueue(start); //Добавить в конец очереди
            mark[p] = true;
            while (Q.Count > 0)
            {
                int u = Q.Dequeue(); //Удаляет элемент из начала очереди и возвращает его
                for (int i = 0; i < matrix.GetLength(0); ++i)
                {
                    if (matrix[u, i] != 0 && !mark[i])
                    {
                        mark[i] = true;
                        Q.Enqueue(i);
                    }
                }
            }
        }

Ответы (0 шт):