📄 adjacencymatrixiterator.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 + -