Esempio n. 1
0
        public static SimpleGraph MakeSandwich(int size)
        {
            SimpleGraph g      = new SimpleGraph();
            int         center = size * 2;

            // face A
            for (int i = 0; i < size - 1; i++)
            {
                g.MakeEdge(i, i + 1);
                g.MakeEdge(i, center);
            }
            g.MakeEdge(size - 1, 0);
            g.MakeEdge(size - 1, center);

            // face B
            for (int i = 0; i < size - 1; i++)
            {
                g.MakeEdge(i + size, i + size + 1);
                g.MakeEdge(i + size, center);
            }
            g.MakeEdge((2 * size) - 1, size);
            g.MakeEdge((2 * size) - 1, center);

            return(g);
        }
Esempio n. 2
0
        public static SimpleGraph MakeQuadricyclane()
        {
            SimpleGraph g = new SimpleGraph();

            g.MakeEdge(0, 1);
            g.MakeEdge(0, 5);
            g.MakeEdge(0, 6);
            g.MakeEdge(1, 2);
            g.MakeEdge(2, 3);
            g.MakeEdge(2, 4);
            g.MakeEdge(3, 4);
            g.MakeEdge(3, 6);
            g.MakeEdge(4, 5);
            g.MakeEdge(5, 6);
            return(g);
        }
Esempio n. 3
0
        public static SimpleGraph MakeSpiroPentagons()
        {
            SimpleGraph g = new SimpleGraph();

            g.MakeEdge(0, 1);
            g.MakeEdge(0, 2);
            g.MakeEdge(0, 3);
            g.MakeEdge(0, 4);
            g.MakeEdge(1, 5);
            g.MakeEdge(2, 6);
            g.MakeEdge(3, 7);
            g.MakeEdge(4, 8);
            g.MakeEdge(5, 6);
            g.MakeEdge(7, 8);
            return(g);
        }
Esempio n. 4
0
        public SimpleGraph MakeTorus(int width, int height)
        {
            SimpleGraph graph = new SimpleGraph();

            // make a grid of width * height
            for (int i = 0; i < width - 1; i++)
            {
                for (int j = 0; j < height; j++)
                {
                    int x = (width * j) + i;
                    int y = x + 1;
                    graph.MakeEdge(x, y);
                    if (j < height - 1)
                    {
                        int z = width * (j + 1) + i;
                        graph.MakeEdge(x, z);
                    }
                }
            }
            // finish off the last column
            for (int i = 0; i < height - 1; i++)
            {
                int x = ((i + 1) * width) - 1;
                int y = ((i + 2) * width) - 1;
                graph.MakeEdge(x, y);
            }

            int size = width * height;

            // connect the top edge to the bottom
            for (int i = 0; i < width; i++)
            {
                graph.MakeEdge(i, size - width + i);
            }

            // connect the left edge to the right
            for (int j = 0; j < height; j++)
            {
                int x = width * j;
                int y = (x + width) - 1;
                graph.MakeEdge(x, y);
            }

            return(graph);
        }
Esempio n. 5
0
        public static SimpleGraph MakePrism(int size)
        {
            SimpleGraph g = new SimpleGraph();

            for (int i = 0; i < size - 1; i++)
            {
                g.MakeEdge(i, i + 1);
            }
            g.MakeEdge(size - 1, 0);
            for (int i = 0; i < size - 1; i++)
            {
                g.MakeEdge(i + size, i + size + 1);
            }
            g.MakeEdge((2 * size) - 1, size);
            for (int i = 0; i < size; i++)
            {
                g.MakeEdge(i, i + size);
            }
            return(g);
        }
Esempio n. 6
0
        public SimpleGraph MakeCompleteGraph(int n)
        {
            SimpleGraph g = new SimpleGraph();

            for (int i = 0; i < n; i++)
            {
                for (int j = i + 1; j < n; j++)
                {
                    g.MakeEdge(i, j);
                }
            }
            return(g);
        }
Esempio n. 7
0
        public static SimpleGraph MakeFourRegularExample()
        {
            SimpleGraph g = new SimpleGraph();

            g.MakeEdge(0, 1);
            g.MakeEdge(0, 3);
            g.MakeEdge(0, 4);
            g.MakeEdge(0, 5);
            g.MakeEdge(1, 2);
            g.MakeEdge(1, 6);
            g.MakeEdge(1, 7);
            g.MakeEdge(2, 3);
            g.MakeEdge(2, 6);
            g.MakeEdge(2, 7);
            g.MakeEdge(3, 4);
            g.MakeEdge(3, 5);
            g.MakeEdge(4, 5);
            g.MakeEdge(4, 6);
            g.MakeEdge(5, 7);
            g.MakeEdge(6, 7);
            return(g);
        }
Esempio n. 8
0
        public static SimpleGraph MakeGrotschGraph()
        {
            SimpleGraph g = new SimpleGraph();

            g.MakeEdge(0, 1);
            g.MakeEdge(0, 2);
            g.MakeEdge(0, 3);
            g.MakeEdge(0, 4);
            g.MakeEdge(0, 5);
            g.MakeEdge(1, 7);
            g.MakeEdge(1, 10);
            g.MakeEdge(2, 6);
            g.MakeEdge(2, 8);
            g.MakeEdge(3, 7);
            g.MakeEdge(3, 9);
            g.MakeEdge(4, 8);
            g.MakeEdge(4, 10);
            g.MakeEdge(5, 6);
            g.MakeEdge(5, 9);
            g.MakeEdge(6, 7);
            g.MakeEdge(6, 10);
            g.MakeEdge(7, 8);
            g.MakeEdge(8, 9);
            g.MakeEdge(9, 10);
            return(g);
        }
Esempio n. 9
0
        public static SimpleGraph MakeHerschelGraph()
        {
            SimpleGraph g = new SimpleGraph();

            g.MakeEdge(0, 1);
            g.MakeEdge(0, 3);
            g.MakeEdge(0, 5);
            g.MakeEdge(1, 2);
            g.MakeEdge(1, 6);
            g.MakeEdge(2, 3);
            g.MakeEdge(2, 7);
            g.MakeEdge(2, 8);
            g.MakeEdge(3, 4);
            g.MakeEdge(4, 5);
            g.MakeEdge(4, 8);
            g.MakeEdge(4, 10);
            g.MakeEdge(5, 6);
            g.MakeEdge(6, 7);
            g.MakeEdge(6, 10);
            g.MakeEdge(7, 9);
            g.MakeEdge(8, 9);
            g.MakeEdge(9, 10);
            return(g);
        }
Esempio n. 10
0
        public static SimpleGraph MakeThreeFourFiveTwisted()
        {
            SimpleGraph g = new SimpleGraph();

            g.MakeEdge(0, 1);
            g.MakeEdge(0, 2);
            g.MakeEdge(0, 7);
            g.MakeEdge(1, 2);
            g.MakeEdge(1, 3);
            g.MakeEdge(2, 5);
            g.MakeEdge(3, 4);
            g.MakeEdge(3, 6);
            g.MakeEdge(4, 5);
            g.MakeEdge(4, 7);
            g.MakeEdge(5, 6);
            g.MakeEdge(6, 7);
            return(g);
        }