static void Lab1Exercise1() { string fileName = getFilePath(); BaseGraph baseGraph = new BaseGraph(fileName); List <Tuple <int, int> > vertices = baseGraph.GetVertices; int edgesNumber = baseGraph.GetEdgesNumber; int verticesNumer = baseGraph.GetVerticesNumer; List <int> edges = new List <int>(); printVertices(vertices, ref edges); printEdges(vertices, edgesNumber); int[,] matrix; AdjacencyMatrix(out matrix, vertices, verticesNumer); printMatrix(matrix); IncidenceMatrix(out matrix, vertices, verticesNumer, edgesNumber); printMatrix(matrix); Console.WriteLine("Wcisnij ENTER"); Console.ReadLine(); }
static void Lab1Exercise3() { string fileName = getFilePath(); BaseGraph baseGraph = new BaseGraph(fileName); List <Tuple <int, int> > vertices = baseGraph.GetVertices; bool isGraphHaveLoops = false; bool isgraphHaveMultiVertices = false; isGraphHaveLoops = IsGrraphHaveLoops(vertices); if (!isGraphHaveLoops) { isgraphHaveMultiVertices = IsGraphHaveMultiVertices(vertices); } if (!isGraphHaveLoops && !isgraphHaveMultiVertices) { Console.WriteLine("Graf G jest grafem prostym"); } else { Console.WriteLine("Graf G jest prafem ogolnym"); } Console.WriteLine("Wcisnij ENTER"); Console.ReadLine(); }
static void Lab1Exercise2() { string fileName = getFilePath(); BaseGraph baseGraph = new BaseGraph(fileName); int verticesNumer = baseGraph.GetVerticesNumer; int edgesNumber = baseGraph.GetEdgesNumber; Console.WriteLine("Rzad grafu G wynosi: " + verticesNumer); Console.WriteLine("Rozmiar grafu G wynosi: " + edgesNumber); List <Tuple <int, int> > vertices = baseGraph.GetVertices; List <int> edges = baseGraph.GetEdges; Dictionary <int, int> degrees = GetDegrees(vertices, edges); List <int> degreeSeries = getDegreeSeries(degrees); string graphDegrees = ""; foreach (var degree in degreeSeries) { graphDegrees += degree + ", "; } graphDegrees.TrimEnd(','); Console.WriteLine("Ciag stopni grafu G: " + graphDegrees); Console.WriteLine("Wcisnij ENTER"); Console.ReadLine(); }
static void Lab1Exercise4() { string fileName = getFilePath(); BaseGraph baseGraph = new BaseGraph(fileName); List <Tuple <int, int> > vertices = baseGraph.GetVertices; bool isGraphHaveLoops = false; bool isgraphHaveMultiVertices = false; isGraphHaveLoops = IsGrraphHaveLoops(vertices); if (!isGraphHaveLoops) { isgraphHaveMultiVertices = IsGraphHaveMultiVertices(vertices); } if (!isGraphHaveLoops && !isgraphHaveMultiVertices) { int verticesCount = baseGraph.GetVerticesNumer; List <int> edges = baseGraph.GetEdges; Dictionary <int, int> degrees = GetDegrees(vertices, edges); List <int> degreeSeries = getDegreeSeries(degrees); bool isFullGraph = true; foreach (var degree in degreeSeries) { if (degree != verticesCount - 1) { Console.WriteLine("Graf G nie jest grafem pelnym."); isFullGraph = false; break; } } if (!isFullGraph) { List <Tuple <int, int> > complementaryVertices = new List <Tuple <int, int> >(); foreach (var edge in edges) { foreach (var edgeNumber in edges) { if (edgeNumber == edge) { continue; } if ((complementaryVertices.Contains(Tuple.Create(edge, edgeNumber))) || (complementaryVertices.Contains(Tuple.Create(edgeNumber, edge)))) { continue; } bool isVerticeCorrect = false; foreach (var vertice in vertices) { if (((edge == vertice.Item1) && (edgeNumber == vertice.Item2)) || ((edge == vertice.Item2) && (edgeNumber == vertice.Item1))) { isVerticeCorrect = true; break; } } if (!isVerticeCorrect) { complementaryVertices.Add(Tuple.Create(edge, edgeNumber)); } } } Console.WriteLine("Krawedzie uzupelnienia grafu G = {" + string.Join(", ", complementaryVertices) + "}"); } else { Console.WriteLine("Graf G jest grafem pelnym."); } } else { Console.WriteLine("Graf G nie jest grafem prostym, wiec nie ma dopelnienia."); } Console.WriteLine("Wcisnij ENTER"); Console.ReadLine(); }