public void DepthFirstTraversal_VisitPost() { var generalTree = GetTestTree(); var trackingVisitor = new AssertionVisitor <int>(); var postVisitor = new PostOrderVisitor <int>(trackingVisitor); generalTree.DepthFirstTraversal(postVisitor); trackingVisitor.AssertTracked(9, 12, 2, 13, 3, 1, 5); }
public void Post() { var binaryTree = GetTestTree(); var trackingVisitor = new TrackingVisitor <int>(); var postVisitor = new PostOrderVisitor <int>(trackingVisitor); binaryTree.DepthFirstTraversal(postVisitor); var tracks = trackingVisitor.TrackingList; Assert.AreEqual(tracks[0], 9); Assert.AreEqual(tracks[1], 12); Assert.AreEqual(tracks[2], 2); Assert.AreEqual(tracks[3], 13); Assert.AreEqual(tracks[4], 3); Assert.AreEqual(tracks[5], 5); }
public void Post() { var binaryTree = GetTestTree(); var trackingVisitor = new TrackingVisitor<int>(); var postVisitor = new PostOrderVisitor<int>(trackingVisitor); binaryTree.DepthFirstTraversal(postVisitor); var tracks = trackingVisitor.TrackingList; Assert.AreEqual(tracks[0], 9); Assert.AreEqual(tracks[1], 12); Assert.AreEqual(tracks[2], 2); Assert.AreEqual(tracks[3], 13); Assert.AreEqual(tracks[4], 3); Assert.AreEqual(tracks[5], 5); }
public void TestDepthFirstVisitPost() { BinaryTree <int> t = GetTestTree(); TrackingVisitor <int> trackingVisitor = new TrackingVisitor <int>(); PostOrderVisitor <int> postVisitor = new PostOrderVisitor <int>(trackingVisitor); t.DepthFirstTraversal(postVisitor); VisitableList <int> tracks = trackingVisitor.TrackingList; Assert.AreEqual(tracks[0], 9); Assert.AreEqual(tracks[1], 12); Assert.AreEqual(tracks[2], 2); Assert.AreEqual(tracks[3], 13); Assert.AreEqual(tracks[4], 3); Assert.AreEqual(tracks[5], 5); }
public void UndirectedPostVisit() { var graph = new Graph <int>(false); var vertex1 = new Vertex <int>(1); var vertex2 = new Vertex <int>(2); var vertex3 = new Vertex <int>(3); var vertex4 = new Vertex <int>(4); var vertex5 = new Vertex <int>(5); var vertex6 = new Vertex <int>(6); var vertex7 = new Vertex <int>(7); graph.AddVertex(vertex1); graph.AddVertex(vertex2); graph.AddVertex(vertex3); graph.AddVertex(vertex4); graph.AddVertex(vertex5); graph.AddVertex(vertex6); graph.AddVertex(vertex7); graph.AddEdge(vertex1, vertex2); graph.AddEdge(vertex1, vertex3); graph.AddEdge(vertex1, vertex5); graph.AddEdge(vertex5, vertex3); graph.AddEdge(vertex3, vertex6); graph.AddEdge(vertex3, vertex4); graph.AddEdge(vertex2, vertex7); var trackingVisitor = new TrackingVisitor <Vertex <int> >(); var postOrderVisitor = new PostOrderVisitor <Vertex <int> >(trackingVisitor); graph.DepthFirstTraversal(postOrderVisitor, vertex1); Assert.AreEqual(trackingVisitor.TrackingList.Count, graph.Vertices.Count); Assert.AreEqual(trackingVisitor.TrackingList[0].Data, 7); Assert.AreEqual(trackingVisitor.TrackingList[1].Data, 2); Assert.AreEqual(trackingVisitor.TrackingList[2].Data, 5); Assert.AreEqual(trackingVisitor.TrackingList[3].Data, 6); Assert.AreEqual(trackingVisitor.TrackingList[4].Data, 4); Assert.AreEqual(trackingVisitor.TrackingList[5].Data, 3); Assert.AreEqual(trackingVisitor.TrackingList[6].Data, 1); }
public void DirectedPostVisit() { var graph = new Graph<int>(true); var vertex1 = new Vertex<int>(1); var vertex2 = new Vertex<int>(2); var vertex3 = new Vertex<int>(3); var vertex4 = new Vertex<int>(4); var vertex5 = new Vertex<int>(5); var vertex6 = new Vertex<int>(6); var vertex7 = new Vertex<int>(7); graph.AddVertex(vertex1); graph.AddVertex(vertex2); graph.AddVertex(vertex3); graph.AddVertex(vertex4); graph.AddVertex(vertex5); graph.AddVertex(vertex6); graph.AddVertex(vertex7); graph.AddEdge(vertex1, vertex2); graph.AddEdge(vertex1, vertex3); graph.AddEdge(vertex1, vertex5); graph.AddEdge(vertex5, vertex3); graph.AddEdge(vertex3, vertex6); graph.AddEdge(vertex3, vertex4); graph.AddEdge(vertex2, vertex7); var trackingVisitor = new TrackingVisitor<Vertex<int>>(); var postOrderVisitor = new PostOrderVisitor<Vertex<int>>(trackingVisitor); graph.DepthFirstTraversal(postOrderVisitor, vertex1); Assert.AreEqual(trackingVisitor.TrackingList.Count, graph.Vertices.Count); Assert.AreEqual(trackingVisitor.TrackingList[0].Data, 7); Assert.AreEqual(trackingVisitor.TrackingList[1].Data, 2); Assert.AreEqual(trackingVisitor.TrackingList[2].Data, 6); Assert.AreEqual(trackingVisitor.TrackingList[3].Data, 4); Assert.AreEqual(trackingVisitor.TrackingList[4].Data, 3); Assert.AreEqual(trackingVisitor.TrackingList[5].Data, 5); Assert.AreEqual(trackingVisitor.TrackingList[6].Data, 1); }