public override void Travers(TraversOrder order, funcTravers travers, StarNode <T> root) { if (root != null) { travers(root); if (root.IsRoot) { m_objects.Travers(order, root.m_objects); } } }
public override void Travers(TraversOrder order, funcTravers travers, ListNode <T> root) { if (root != null && order == TraversOrder.ListOrder) { travers(root.Next); Travers(order, travers, root.Next); } if (root != null && order == TraversOrder.ReservListOrder) { travers(root.Next); Travers(order, travers, root.Prev); } }
public override void Travers(TraversOrder order, funcTravers travers, GenericBlockChain <T, ENTRY> chain) { if (order == TraversOrder.ListOrder) { for (GenericBlockChain <T, ENTRY> root = chain; root != null; root = root.Next) { travers(root); } } else if (order == TraversOrder.ReservListOrder) { for (GenericBlockChain <T, ENTRY> root = chain; root != null; root = root.Prev) { travers(root); } } }
public override void Travers(TraversOrder order, funcTravers travers, BinaryTreeNode <T> root) { if (travers == null) { throw new ArgumentNullException("travers"); } switch (order) { case TraversOrder.Inorder: if (root != null) { Travers(order, travers, root.m_nodes[1]); travers(root); Travers(order, travers, root.m_nodes[2]); } break; case TraversOrder.Postorder: if (root != null) { Travers(order, travers, root.m_nodes[1]); Travers(order, travers, root.m_nodes[2]); travers(root); } break; case TraversOrder.Preorder: if (root != null) { travers(root); Travers(order, travers, root.m_nodes[1]); Travers(order, travers, root.m_nodes[2]); } break; } }
public abstract void Travers(TraversOrder order, funcTravers travers, D Root);