static void Main(string[] args)
        {
            // TODO 整理到notion筆記
            // TODO 整理readme.md
            // TODO Merge Sort還未實作
            UndirectedAdjacenyList graph = new UndirectedAdjacenyList();

            // bfs graph
            //https://media.geeksforgeeks.org/wp-content/cdn-uploads/bfs1.png

            // dfs
            graph.AddEdge(1, 2);
            graph.AddEdge(1, 3);

            graph.AddEdge(2, 4);
            graph.AddEdge(2, 5);
            graph.AddEdge(2, 1);

            graph.AddEdge(3, 1);
            graph.AddEdge(3, 5);
            graph.AddEdge(3, 7);
            graph.AddEdge(3, 6);

            graph.AddEdge(4, 2);
            graph.AddEdge(4, 8);

            graph.AddEdge(5, 3);
            graph.AddEdge(5, 2);

            graph.AddEdge(6, 3);

            graph.AddEdge(7, 3);

            graph.AddEdge(8, 4);

            //var path = graph.Bfs(1, 8);
            //foreach (var vertice in path)
            //{
            //    Console.WriteLine(vertice);
            //}
            var p = graph.Dfs(1, 8);

            foreach (var vertice in p)
            {
                Console.WriteLine(vertice);
            }
            Console.Read();
        }
Exemplo n.º 2
0
        public void BasicTests()
        {
            var adjList = new DirectedAdjacencyList <int>(2);

            adjList.AddVertex(10);
            adjList.AddVertex(20);

            adjList.CreateEdge(10, 20);

            Assert.IsTrue(adjList.Adjacent(10, 20));
            Assert.IsFalse(adjList.Adjacent(20, 10));

            var undirectedList = new UndirectedAdjacenyList <int>(2);

            undirectedList.AddVertex(10);
            undirectedList.AddVertex(20);

            undirectedList.CreateEdge(10, 20);

            Assert.IsTrue(undirectedList.Adjacent(10, 20));
            Assert.IsTrue(undirectedList.Adjacent(20, 10));
        }