option for bfs

This commit is contained in:
Морозов Андрей 2021-11-10 12:26:46 +00:00
parent 442288141d
commit 749afe3e6e
1 changed files with 27 additions and 4 deletions

View File

@ -53,7 +53,7 @@ void main(List<String> arguments) {
String str = ""; String str = "";
while (deistvie != 0) { while (deistvie != 0) {
stdout.write( stdout.write(
"1 - создать граф, 2 - удалить граф, 3 - добавить в граф вершину,\n4 - удалить вершину, 5 - добавить ребро/дугу, 6 - удалить ребро/дугу,\n7 - вывести граф на экран, 8 - вывести граф в файл, 0 - выход\nDeistvie: "); "1 - создать граф, 2 - удалить граф, 3 - добавить в граф вершину,\n4 - удалить вершину, 5 - добавить ребро/дугу, 6 - удалить ребро/дугу,\n7 - вывести граф на экран, 8 - вывести граф в файл, 9 - обход в ширину,\n0 - выход\nDeistvie: ");
deistvie = getIntLine(); deistvie = getIntLine();
switch (deistvie) { switch (deistvie) {
case 1: case 1:
@ -156,7 +156,7 @@ void main(List<String> arguments) {
stdout.write("Имя вершины: "); stdout.write("Имя вершины: ");
String dotName = getStrLine(); String dotName = getStrLine();
stdout.write( /*stdout.write(
"Ввод: *куда*|*вес* через пробел. Если граф не взвешенный, то *вес* можно не указывать.\nВершина cмежна с: "); "Ввод: *куда*|*вес* через пробел. Если граф не взвешенный, то *вес* можно не указывать.\nВершина cмежна с: ");
str = getStrLine(); str = getStrLine();
@ -170,12 +170,12 @@ void main(List<String> arguments) {
inn.add(int.parse(splitted)); inn.add(int.parse(splitted));
len.add(0); len.add(0);
} }
} }*/
printGraphsName(graphs); printGraphsName(graphs);
stdout.write("Вставка в графа с номером: "); stdout.write("Вставка в графа с номером: ");
int y = getIntLine(); int y = getIntLine();
if (y >= 0 && y < graphs.length) { if (y >= 0 && y < graphs.length) {
graphs[y].addDotFromToLists(dotName, inn, len); graphs[y].addIsolated(dotName);
} else { } else {
print("Не найден граф с таким номером"); print("Не найден граф с таким номером");
} }
@ -285,6 +285,29 @@ void main(List<String> arguments) {
} }
break; break;
} }
case 9:
{
int num = graphs.length;
printGraphsName(graphs);
stdout.write("Работаем в графе с номером: ");
int y = getIntLine();
if (y >= 0 && y < num) {
graphs[y].printG();
num = graphs[y].getDotAmount();
stdout.write("Вершина, из которой выходят: ");
int x1 = getIntLine();
stdout.write("Вершина, в которую идут: ");
int x2 = getIntLine();
if (x1 >= 0 && x1 <= num && x2 >= 0 && x2 <= num) {
print("BFS: ${graphs[y].bfsPath(x1, x2)}");
} else {
print("Не найдены введеные вершины в графе\n");
}
} else {
print("Не найден граф с таким номером");
}
break;
}
case 0: case 0:
getStrLine(); getStrLine();
exit(0); exit(0);