⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adjacencymatrixiterator.h

📁 这是数据结构、算法与应用-C++语言描述的代码
💻 H
字号:

// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -