prefuse.data.util
Class BreadthFirstIterator

java.lang.Object
  extended by prefuse.data.util.BreadthFirstIterator
All Implemented Interfaces:
java.util.Iterator<Tuple<?>>

public class BreadthFirstIterator
extends java.lang.Object
implements java.util.Iterator<Tuple<?>>

Provides a distance-limited breadth first traversal over nodes, edges, or both, using any number of traversal "roots".

Author:
jeffrey heer

Field Summary
protected  int m_depth
           
protected  Queue m_queue
           
protected  TraversalType m_traversal
           
 
Constructor Summary
BreadthFirstIterator()
          Create an uninitialized BreadthFirstIterator.
BreadthFirstIterator(java.lang.Iterable<Tuple<?>> it, int depth, TraversalType traversal)
          Create a new BreadthFirstIterator starting from the given source nodes.
BreadthFirstIterator(Node<?,?> n, int depth, TraversalType traversal)
          Create a new BreadthFirstIterator starting from the given source node.
 
Method Summary
 int getDepth(Tuple<?> t)
          Get the traversal depth at which a particular tuple was encountered.
protected  java.util.List<Edge<?,?>> getEdges(Node<?,?> n)
          Determines which edges are traversed for a given node.
 boolean hasNext()
           
 void init(java.lang.Iterable<? extends Tuple<?>> o, int depth, TraversalType traversal)
          Initialize (or re-initialize) this iterator.
 Tuple<?> next()
           
 void remove()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_queue

protected Queue m_queue

m_depth

protected int m_depth

m_traversal

protected TraversalType m_traversal
Constructor Detail

BreadthFirstIterator

public BreadthFirstIterator()
Create an uninitialized BreadthFirstIterator. Use the #init(Iterable, int, prefuse.data.util.BreadthFirstIterator.TraversalType) method to initialize the iterator.


BreadthFirstIterator

public BreadthFirstIterator(Node<?,?> n,
                            int depth,
                            TraversalType traversal)
Create a new BreadthFirstIterator starting from the given source node.

Parameters:
n - the source node from which to begin the traversal
depth - the maximum graph distance to traverse
traversal - the traversal type

BreadthFirstIterator

public BreadthFirstIterator(java.lang.Iterable<Tuple<?>> it,
                            int depth,
                            TraversalType traversal)
Create a new BreadthFirstIterator starting from the given source nodes.

Parameters:
it - an Iterator over the source nodes from which to begin the traversal
depth - the maximum graph distance to traverse
traversal - the traversal type
Method Detail

init

public void init(java.lang.Iterable<? extends Tuple<?>> o,
                 int depth,
                 TraversalType traversal)
Initialize (or re-initialize) this iterator.

Parameters:
o - Either a source node or iterator over source nodes
depth - the maximum graph distance to traverse
traversal - the traversal type

remove

public void remove()
Specified by:
remove in interface java.util.Iterator<Tuple<?>>
See Also:
Iterator.remove()

hasNext

public boolean hasNext()
Specified by:
hasNext in interface java.util.Iterator<Tuple<?>>
See Also:
Iterator.hasNext()

getEdges

protected java.util.List<Edge<?,?>> getEdges(Node<?,?> n)
Determines which edges are traversed for a given node.

Parameters:
n - a node
Returns:
an iterator over edges incident on the node

getDepth

public int getDepth(Tuple<?> t)
Get the traversal depth at which a particular tuple was encountered.

Parameters:
t - the tuple to lookup
Returns:
the traversal depth of the tuple, or -1 if the tuple has not been visited by the traversal.

next

public Tuple<?> next()
Specified by:
next in interface java.util.Iterator<Tuple<?>>
See Also:
Iterator.next()


Copyright © 2008 Regents of the University of California