写一个最短路径的类,利用广度优先遍历算法记录无权图的最短路径
代码
#pragma once
#include <iostream>
#include <vector>
#include <queue>
#include <cassert>
#include <stack>
using namespace std;
template<typename Graph>
class shortestPath {
private:
Graph& G;
int s;
bool* visited;
int* from;
int* dist;
public:
shortestPath(Graph& graph, int s):G(graph) {
assert(s >= 0 && s < G.V());
visited = new bool[G.V()];
from = new int[G.V()];
dist = new int[G.V()