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(); }
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)); }