public List<Vertex> BSF(Vertex s, bool visit = false)
        {
            List<Vertex> visited = new List<Vertex>();

            Deque queue = new Deque(new List<Vertex>() { s });
            while (queue.Count > 0)
            {
                Vertex v = queue.PopBack() as Vertex;
                if (visited.Contains(v)) continue;

                visited.Add(v);

                //     visited.add(v)
                ////    if visit: visit(v)

                List<Vertex> outVertices = OutVertices(v);
                foreach (var item in outVertices)
                {
                    queue.PushFront(item);
                }
            }

            return visited;
        }
示例#2
0
 public DequeEnumerator(Deque owner)
 {
     this.owner  = owner;
     currentNode = owner.front;
     version     = owner.version;
 }