code: public static <V> BiDiNavigator<V> unionNav(final BiDiNavigator<V> n1, final BiDiNavigator<V> n2) {
  	return new BiDiNavigator<V>() {
  	    public List<V> next(V v) {
  		return DSUtil.unionList(n1.next(v), n2.next(v));
  	    }
  	    public List<V> prev(V v) {
  		return DSUtil.unionList(n1.prev(v), n2.prev(v));
  	    }	    
  	};
      }
docs: Unions two <code>BiDiNavigator</code>.  For each vertex
  <code>v</code>, successors/predecessors indicated by the union
  navigator consist of all the successors/predecessors indicated
  by <code>n1</code>, followed by all the
  successors/predecessors indicated by <code>n2</code>.  Note
  that the same successor/predecessor may be indicated twice,
  once by <code>fn1</code> and once by <code>fn2</code>.