#include "DenseGraph.h"

#ifndef ADJ_ITERATOR_DG_H
#define ADJ_ITERATOR_DG_H

class DenseGraph::AdjIterator
{
private:
  const DenseGraph &graph;
  int cur, vec;

public:
  AdjIterator(const DenseGraph &g, int v) :
    graph(g), vec(v), cur(-1) {}

  int beg() {
    cur = -1; return nxt();
  }
  
  int nxt() {
    for (cur++; cur < graph.V(); cur++)
      if (graph.adj[vec][cur] == true)
	return cur;
    return -1;
  }

  bool end() {
    return cur >= graph.V();
  }
};

#endif
