adjacencymatrixiterator.h

来自「function to compute an expression using 」· C头文件 代码 · 共 46 行

H
46
字号

// adjacency matrix iterator

#ifndef adjacencyMatrixIterator_
#define adjacencyMatrixIterator_

#include "vertexIterator.h"

using namespace std;

template<class T>
class adjacencyMatrixIterator : public vertexIterator<T>
{
   public:
      adjacencyMatrixIterator(T* theRow, T theNoEdge, int numberOfVertices)
      {
         row = theRow;
         noEdge = theNoEdge;
         n = numberOfVertices;
         currentVertex = 1;
      }

      ~adjacencyMatrixIterator() {}

      pair<int, T>* next()
      {// Return (next vertex, edge weight) pair.
         // find next adjacent vertex
         for (int j = currentVertex; j <= n; j++)
            if (row[j] != noEdge)
            {
               currentVertex = j + 1;
               return new pair<int, T>(j, row[j]);
            }
         // no next adjacent vertex
         currentVertex = n + 1;
         return NULL;
      }

   protected:
      T* row;           // row of adjacency matrix
      T noEdge;         // theRow[i] == noEdge iff no edge to i
      int n;            // number of vertices
      int currentVertex;
};
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?