Algorithmen_Datenstrukturen/Uebung 3/Uebung3_1/main.cpp

82 lines
2.6 KiB
C++

#include "edge.h"
#include "extendedgraph.h"
#include <iostream> /* cout, cerr */
#include <sstream> /* type stringstream to easily concat a result string */
#include <string> /* type string */
#include <vector> /* type vector */
int main() {
/* Creation of Graph */
std::vector<std::string> vertices = {
"London", "Mailand", "Wien", "Madrid", "Rom",
"Paris", "Amsterdam", "Moskau", "Berlin", "Lyon"};
std::vector<Edge> edges = {
{"London", "Mailand", 2}, {"London", "Wien", 2},
{"Mailand", "London", 2}, {"Mailand", "Wien", 6},
{"Mailand", "Madrid", 5}, {"Wien", "London", 2},
{"Wien", "Mailand", 6}, {"Wien", "Rom", 4},
{"Wien", "Paris", 5}, {"Madrid", "Mailand", 5},
{"Madrid", "Rom", 5}, {"Madrid", "Lyon", 3},
{"Rom", "Wien", 4}, {"Rom", "Madrid", 5},
{"Rom", "Moskau", 3}, {"Rom", "Lyon", 4},
{"Amsterdam", "Paris", 1}, {"Amsterdam", "Moskau", 1},
{"Moskau", "Rom", 3}, {"Moskau", "Paris", 1},
{"Moskau", "Amsterdam", 1}, {"Moskau", "Berlin", 2},
{"Berlin", "Moskau", 2}, {"Berlin", "Lyon", 2},
{"Lyon", "Madrid", 3}, {"Lyon", "Rom", 4},
{"Lyon", "Paris", 2}, {"Lyon", "Berlin", 2}};
ExtendedGraph g(vertices, edges);
// g.printGraph();
g.performDijkstraPath("Amsterdam", "Moskau");
for (auto &i : vertices) {
for (auto &j : vertices) {
if (i != j) {
g.performDijkstraPath(i, j);
}
}
}
/* insertVertices */
// g.insertVertex("D");
// g.insertVertex("H");
// g.printGraph();
/* insertEdges */
// g.insertEdge({"C", "D"});
// g.insertEdge({"F", "H"});
// g.insertEdge({"G", "H"});
// g.insertEdge({"D", "H"});
// g.printGraph();
/* deleteEdges */
// g.deleteEdge({"D", "H"});
// g.printGraph();
/* Delete Vertices */
// g.deleteVertex("C");
// g.printGraph();
/* Adjacency */
// std::cout << "Adjacent B --> A? " << g.adjacent("B", "A") << "\n";
// std::cout << "Adjacent A --> B? " << g.adjacent("A", "B") << "\n";
// std::cout << "Adjacent A --> H? " << g.adjacent("A", "H") << "\n";
/* Neighbourhood */
// std::cout << "\n";
// std::cout << "Neighbours of B: ";
// vectorToString(g.neighbours("B"));
// std::cout << "Neighbours of A: ";
// vectorToString(g.neighbours("A"));
// std::cout << "Neighbours of H: ";
// vectorToString(g.neighbours("H"));
}
void vectorToString(std::vector<std::string> vector) {
for (int i = 0; i < vector.size(); i++) {
std::cout << vector[i] << "\t";
}
std::cout << "\n";
}