Ejemplo n.º 1
0
        private void traverse(object paramObject, GraphTraversalListener paramGraphTraversalListener, ISet <object> paramSet1, ISet <object> paramSet2)
        {
            ISet <object> set = (ISet <object>) this.outbounds[paramObject];

            if (set != null)
            {
                foreach (Edge edge in set)
                {
                    ISet <object> set1 = (ISet <object>) this.inbounds[edge.target];
                    System.Collections.IEnumerator iterator = set1.GetEnumerator();
                    bool @bool = true;
                    while (iterator.MoveNext())
                    {
                        Edge edge1 = (Edge)iterator.Current;
                        if (paramSet2.Contains(edge1.source) && !paramSet1.Contains(edge1.source) && !paramObject.Equals(edge1.source))
                        {
                            @bool = false;
                            break;
                        }
                    }
                    if (@bool)
                    {
                        paramGraphTraversalListener.traverse(edge.target);
                        paramSet1.Add(edge.target);
                        traverse(edge.target, paramGraphTraversalListener, paramSet1, paramSet2);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public virtual void traverse(object paramObject, GraphTraversalListener paramGraphTraversalListener)
        {
            HashSet <object> hashSet1 = new HashSet <object>();

            walk(paramObject, hashSet1);
            HashSet <object> hashSet2 = new HashSet <object>();

            hashSet2.Add(paramObject);
            traverse(paramObject, paramGraphTraversalListener, hashSet2, hashSet1);
        }