Материал: Программирование на языке С#

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

}

//если хотя бы одну не нашли(start == -1 || finish == -1) {

//ошибка.Show("Не указана начальная или конечная вершина!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

//и выходим return;

}(tn.aVertex[start].Enabled == false || tn.aVertex[finish].Enabled == false) {

//ошибка.Show("Начальная или конечная вершина заблокированы!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

//и выходим return;

}

//нужно снять отметку с старого пути

for (int i = 0; i < tn.aEdge.Count; i++) {.aEdge[i].IsPartOfPath = false; }

//нужно снять отметку с старого пути

for (int i = 0; i < tn.aVertex.Count; i++) {.aVertex[i].IsPartOfPath = false; }_path.Clear(); best_pathE.Clear(); best_weight = int.MaxValue;_path.Clear(); current_pathE.Clear(); current_weight = 0; current_transfer = 0;

rdfs(-1, start, -1, finish);

//если не нашли путь

if (best_weight == int.MaxValue) {

//ошибка.Show("Путь до конечной вершины не может быть найден!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

//и выходим return;

}

//теперь нужно пометить путь while (best_pathE.Count != 0) {i = best_pathE.Pop();.aEdge[i].IsPartOfPath = true;.aVertex[tn.aEdge[i].srcVertex].IsPartOfPath = true; tn.aVertex[tn.aEdge[i].destVertex].IsPartOfPath = true;

}

//отрисовать.Draw(checkBoxShowInvisible.Checked, checkBoxShowDeleted.Checked);

}