Работа с алгоритмами
This commit is contained in:
parent
7945800116
commit
d4c57c6aad
|
@ -13,7 +13,7 @@ void printGraphsName(List<Graphs> inp) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void main(List<String> arguments) {
|
void main(List<String> arguments) {
|
||||||
/*Map<int, int> x = {2: 10};
|
/* Map<int, int> x = {2: 10};
|
||||||
var p = Dot.fromMap("Т1", x);
|
var p = Dot.fromMap("Т1", x);
|
||||||
p.printD();
|
p.printD();
|
||||||
x = <int, int>{};
|
x = <int, int>{};
|
||||||
|
@ -31,10 +31,10 @@ void main(List<String> arguments) {
|
||||||
x1.printToFile("o.txt");
|
x1.printToFile("o.txt");
|
||||||
var x2 = Graphs.fromFile("o.txt");
|
var x2 = Graphs.fromFile("o.txt");
|
||||||
x2.printG();
|
x2.printG();
|
||||||
print(x2.bfsHasPath(1, 4));
|
|
||||||
print(x2.bfsPath(1, 3));
|
print(x2.bfsPath(1, 3));
|
||||||
|
|
||||||
Graphs x1 = Graphs("Gt", false, true);
|
var x1 = Graphs("Gt", false, true);
|
||||||
x1.addIsolated("T1");
|
x1.addIsolated("T1");
|
||||||
x1.addIsolated("T2");
|
x1.addIsolated("T2");
|
||||||
x1.addIsolated("T3");
|
x1.addIsolated("T3");
|
||||||
|
@ -43,17 +43,18 @@ void main(List<String> arguments) {
|
||||||
x1.addPath(3, 2, 5);
|
x1.addPath(3, 2, 5);
|
||||||
x1.addPath(2, 4, 10);
|
x1.addPath(2, 4, 10);
|
||||||
x1.printG();
|
x1.printG();
|
||||||
print(x1.bfsPath(1, 4));
|
//print(x1.bfsPath(1, 4));
|
||||||
print(x1.bfsHasPath(1, 4));
|
//print(x1.dfsIterative(1));
|
||||||
print(x1.dfsIterative(1));
|
print(x1.dijkstra(2));
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int deistvie = 1;
|
int deistvie = 1;
|
||||||
List<Graphs> graphs = <Graphs>[];
|
List<Graphs> graphs = <Graphs>[];
|
||||||
String name;
|
String name;
|
||||||
String str = "";
|
String str = "";
|
||||||
while (deistvie != 0) {
|
while (deistvie != 0) {
|
||||||
stdout.write(
|
stdout.write(
|
||||||
"1 - создать граф, 2 - удалить граф, 3 - добавить в граф вершину,\n4 - удалить вершину, 5 - добавить ребро/дугу, 6 - удалить ребро/дугу,\n7 - вывести граф на экран, 8 - вывести граф в файл, 9 - обход в ширину,\n0 - выход\nDeistvie: ");
|
"1 - создать граф, 2 - удалить граф, 3 - добавить в граф вершину,\n4 - удалить вершину, 5 - добавить ребро/дугу, 6 - удалить ребро/дугу,\n7 - вывести граф на экран, 8 - вывести граф в файл, 9 - алгоритмы,\n0 - выход\nDeistvie: ");
|
||||||
deistvie = getIntLine();
|
deistvie = getIntLine();
|
||||||
switch (deistvie) {
|
switch (deistvie) {
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -287,21 +288,54 @@ void main(List<String> arguments) {
|
||||||
}
|
}
|
||||||
case 9:
|
case 9:
|
||||||
{
|
{
|
||||||
int num = graphs.length;
|
print("1 - BFS, 2 - DFS, 3 - Дейкстра. Действие:");
|
||||||
|
int d = getIntLine();
|
||||||
printGraphsName(graphs);
|
printGraphsName(graphs);
|
||||||
|
int num = graphs.length;
|
||||||
stdout.write("Работаем в графе с номером: ");
|
stdout.write("Работаем в графе с номером: ");
|
||||||
int y = getIntLine();
|
int y = getIntLine();
|
||||||
|
graphs[y].printG();
|
||||||
if (y >= 0 && y < num) {
|
if (y >= 0 && y < num) {
|
||||||
graphs[y].printG();
|
|
||||||
num = graphs[y].getDotAmount();
|
num = graphs[y].getDotAmount();
|
||||||
stdout.write("Вершина, из которой выходят: ");
|
stdout.write("Вершина, из которой выходят: ");
|
||||||
int x1 = getIntLine();
|
int x1 = getIntLine();
|
||||||
stdout.write("Вершина, в которую идут: ");
|
switch (d) {
|
||||||
int x2 = getIntLine();
|
case 1:
|
||||||
if (x1 >= 0 && x1 <= num && x2 >= 0 && x2 <= num) {
|
{
|
||||||
print("BFS: ${graphs[y].bfsPath(x1, x2)}");
|
stdout.write("Вершина, в которую идут: ");
|
||||||
} else {
|
int x2 = getIntLine();
|
||||||
print("Не найдены введеные вершины в графе\n");
|
if (x1 >= 0 && x1 <= num && x2 >= 0 && x2 <= num) {
|
||||||
|
print("BFS: ${graphs[y].bfsPath(x1, x2)}");
|
||||||
|
} else {
|
||||||
|
print("Не найдены введеные вершины в графе\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
if (x1 >= 0 && x1 <= num) {
|
||||||
|
print("DFS: ${graphs[y].dfsIterative(x1)}");
|
||||||
|
} else {
|
||||||
|
print("Не найдена введеныая вершина в графе\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
if (x1 >= 0 && x1 <= num) {
|
||||||
|
print("Dijkstra: ${graphs[y].dijkstra(x1)}");
|
||||||
|
if (!graphs[y].getUseLengthBool()) {
|
||||||
|
print("*Т.к. граф не взвешенный, то вес пути = 1.\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print("Не найдена введеная вершина в графе\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print("Не найден граф с таким номером");
|
print("Не найден граф с таким номером");
|
||||||
|
|
Loading…
Reference in New Issue