Внимание! Студландия не продает дипломы, аттестаты и иные документы об образовании. Наши специалисты оказывают услуги консультирования в области образования: в сборе информации, ее обработке, структурировании и оформления в соответствии с ГОСТом. Все услуги на сайте предоставляются исключительно в рамках законодательства РФ.

Решение задач: Тема. C#. Поиск длины кратчайшего маршрута между вершинами s и d графа.

  • 21.06.2018
  • Дата сдачи: 21.06.2018
  • Статус: Архив
  • Детали заказа: # 58072

Тема: Тема. C#. Поиск длины кратчайшего маршрута между вершинами s и d графа.

Задание:
C# Необходимо заполнить пропуски в каркасе программы, соответствуя заданию.
Тема. Поиск длины кратчайшего маршрута между вершинами s и d графа.
Кратчайший маршрута между вершинами s и d графа – путь, содержащий минимальное количество ребер. Это число ребер и есть длина кратчайшего маршрута
Задание. Спроектировать класс GraphM
Описание алгоритмов.
Метод private int bfsM(int s,int d).
• Выполняет обход графа в ширину. Возвращает длину кратчайшего маршрута.
Метод public override string ToString().
• Выполняет преобразование для вывода длины кратчайшего маршрута.
Конструктор public GraphM(int nt, int [,] g,int s,int d)
Каркас программы.
class GraphM
{
int[,] G; int n; int nM; int[] mark;
public GraphM(int nt, int [,] g,int s,int d)
{
n=nt;
G=new int[n,n];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) G[i, j] = g[i, j];
mark = new int[nt];
for (int i = 0; i < n; i++)
mark[i] = 0;
nM = 0;
nM = bfsM(s,d);
}
int bfsM(int s,int d)
{
Queue Q,M; mark[s] = 1; int vt = s;
Q = new Queue();
M= new Queue();
Q.Enqueue(vt); M.Enqueue(0);
int nMt;
while (true) {
vt=Q.Dequeue();
nMt=M.Dequeue(); . . . }
nM = nMt;
return nM;
}
public override string ToString()
{. . . }
}
class Program
{
static void Main(string[] args)
{
StreamReader R = new StreamReader("in.txt");
StreamWriter W = new StreamWriter("out.txt");
int i;int[,] A;string[] As; int n; int s,d;
As = R.ReadLine().Split();
n = As.Length;
A = new int[n,n];
i=0;
for (int j = 0; j < n; j++) A[i,j] = Convert.ToInt32(As[j]);
for (i++; i < n; i++) {
As = R.ReadLine().Split();
for (int j = 0; j < n; j++) A[i, j] = Convert.ToInt32(As[j]);
}
As = R.ReadLine().Split();
s=Convert.ToInt32(As[0]);
d=Convert.ToInt32(As[1]);
GraphM oG = new GraphM(n, A,s,d);
W.WriteLine(oG);
R.Close();
W.Close();
}
}
Пример исполнения программы.
in.txt
0 1 1 1 0 0
0 0 0 1 0 0
0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 0
0 5
out.txt
Длина кратчайшего маршрута: 2
  • Тип: Решение задач
  • Предмет: Программирование
  • Объем: 1-3 стр.

Можем рассчитать стоимость такой же или похожей работы за 2 минуты

Примеры выполненных работ
103 972 студента обратились к нам за прошлый год
175 оценок
среднее 4.9 из 5