Программа реализующая алгоритм обхода графа в глубину сделанная на C++ с пошаговой графической реализацией алгоритма на WinFoms. Чтобы открыть проект требуется VisualStudio 2013 или новее (2017 лучше всего).
В ходе курсовой работы были детально рассмотрены понятия, связанные с теорией графов, а также рассмотрены основные виды представления графов, из которых выбран способ представления, в виде матрицы смежности, это обусловлено тем, что алгоритм обхода в глубину применяется для не ориентированных, не взвешенных графов.
После этого были проанализированы все виды обходов графа и проведена их сравнительная характеристика, которая выявила все преимущества обхода графа в глубину.
Для написания программы был выбран язык С++. Это обусловлено тем, что данный язык самый быстрый в мире высокоуровневый язык программирования. Для языка С++ характерны лаконичность, стандартный набор конструкций управления потоком выполнения, структур данных и обширный набор операций, а также данный язык совместим с выбранным способом визуализации – CLI.
После этого была написанная программа, с помощью которой, пользователь может задать свой собственный граф после чего, при нажатии соответствующей кнопки, произойдет пошаговый обход, заданного графа, в глубину. Данная программа включает в себя разнообразный пользовательский интерфейс состоящий из множества различных кнопок, а также элементов ввода-вывода. Каждая составляющая данного интерфейса была детально проанализирована и объяснена.
Содержание пояснительной записки:
Фрагмент программного кода:
Отрисовка заданного графа.
for (int i = 0; i <versh; i++)for (int j = 0; j <versh; j++){ if (matrica[i][j] == 1){ g->DrawLine(Penn, xx[i], yy[i], xx[j], yy[j]); g->FillEllipse(Brushes::White, xx[i] - 18, yy[i] - 14, 28, 28); g->DrawString(Convert::ToString(i + 1), fn, Brushes::Red, xx[i] - 10, yy[i] - 10); } g->DrawEllipse(Penn, xx[i] - 19, yy[i] - 15, 30, 30); }
Содержание архива:
- Исходный код приложения на языке программирования С++
- Пояснительная записка (23 страницы)
psyfaker