Пример #1
0
 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);
         }
     }
 }
Пример #2
0
 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);
     }
 }
Пример #3
0
 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);
         }
     }
 }
Пример #4
0
        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;
            }
        }
Пример #5
0
 public abstract void Travers(TraversOrder order, funcTravers travers, D Root);