- 简单实现图的邻接表
- 深度优先(DFS)与广度优先算法(BFS)遍历图
#pragma once
#include <iostream>
#include <list>
#include <stack>
#include <queue>
using namespace std;
template<class T>
class AdjacencyGraph
{
public:
AdjacencyGraph(size_t capacity = 20);
~AdjacencyGraph();
class Vertex
{
public:
Vertex(T v) : bVisited(0){
val = v; }
friend class AdjacencyGraph<T>;
private:
T val;
bool bVisited;
};
public:
void addVertex(const T&);
void addEdge(int start, int end);
void printVertice() const;
void printAdjacencyTable() const;
void BFS();
void DFS();
private:
size_t m_size;
size_t m_capacity;
Vertex** m_vArray;
list<int>* m_pList;
};
template<class T>
inline AdjacencyGraph<T>::AdjacencyGraph(size_t c)
:m_size(0), m_capacity(c)
{
m_vArray = new Vertex * [c]