Exemplo n.º 1
0
    public void TraversePreorder(VisitNodeFunct2 visitNode, TraversalType type, bool delayVisit = false)
    {
        var  visited  = new Hashtable();
        bool traverse = true;

        Traverse((TNode c, TraversalListIDS <TNode> k) =>
        {
            if (type == TraversalType.DepthFirst || !visited.ContainsKey(c))
            {
                if (delayVisit)
                {
                    Delay();
                }

                traverse = visitNode(c, k);

                if (type == TraversalType.BreadthFirst)
                {
                    visited.Add(c, (c.Level) * (c.ChildIndex + 1));
                }

                foreach (TNode child in c.Children)
                {
                    k.Add(child);
                }
            }
            return(traverse);
        }, type);
    }
Exemplo n.º 2
0
    public void Traverse(VisitNodeFunct2 visitNode, TraversalType type)
    {
        var ids = new TraversalListIDS <TNode>(type);

        ids.Add(Root);

        while (ids.Count > 0 && visitNode(ids.Take(), ids) == true)
        {
            ;
        }
    }
Exemplo n.º 3
0
        public void TraversePreorder(VisitNodeFunct2 visitNode, TraversalType type, bool delayVisit = false)
        {
            var visited = new Hashtable();
            bool traverse = true;

            Traverse((TNode c, TraversalListIDS<TNode> k) =>
            {
                if (type == TraversalType.DepthFirst || !visited.ContainsKey(c))
                {
                    if (delayVisit) Delay();

                    traverse = visitNode(c, k);

                    if (type == TraversalType.BreadthFirst)
                        visited.Add(c, (c.Level) * (c.ChildIndex + 1));

                    foreach (TNode child in c.Children)
                    {
                        k.Add(child);
                    }
                }
                return traverse;
            }, type);
        }
Exemplo n.º 4
0
        public void Traverse(VisitNodeFunct2 visitNode, TraversalType type)
        {
            var ids = new TraversalListIDS<TNode>(type);
            ids.Add(Root);

            while (ids.Count > 0 && visitNode(ids.Take(), ids) == true) ;
        }