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 + -
显示快捷键?