Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }