diff --git a/cmd/bin/graphs0.dart b/cmd/bin/graphs0.dart index f00af38..05db1dc 100644 --- a/cmd/bin/graphs0.dart +++ b/cmd/bin/graphs0.dart @@ -53,7 +53,7 @@ void main(List arguments) { String str = ""; while (deistvie != 0) { 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(); switch (deistvie) { case 1: @@ -156,7 +156,7 @@ void main(List arguments) { stdout.write("Имя вершины: "); String dotName = getStrLine(); - stdout.write( + /*stdout.write( "Ввод: *куда*|*вес* через пробел. Если граф не взвешенный, то *вес* можно не указывать.\nВершина cмежна с: "); str = getStrLine(); @@ -170,12 +170,12 @@ void main(List arguments) { inn.add(int.parse(splitted)); len.add(0); } - } + }*/ printGraphsName(graphs); stdout.write("Вставка в графа с номером: "); int y = getIntLine(); if (y >= 0 && y < graphs.length) { - graphs[y].addDotFromToLists(dotName, inn, len); + graphs[y].addIsolated(dotName); } else { print("Не найден граф с таким номером"); } @@ -285,6 +285,29 @@ void main(List arguments) { } 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: getStrLine(); exit(0);