设汁一个算法,建立无向图(n个顶点,e条边)的邻接表
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 09:31:59
设汁一个算法,建立无向图(n个顶点,e条边)的邻接表
设汁一个算法,建立无向图(n个顶点,e条边)的邻接表
设汁一个算法,建立无向图(n个顶点,e条边)的邻接表
#include
#include
#include
#include
using namespace std;
const int MaxVertices=10;
const int MaxWeight=10000;
class Vertex
{
public:
Vertex(void);
Vertex(int lab);
int label;
bool wasVisited;
void setLv(int l,bool wasvisited);
public:
Vertex(void);
};
Vertex::Vertex(void)
{
}
Vertex::Vertex(int lab)
{
label = lab;
wasVisited = false;
}
void Vertex::setLv(int l,bool wasvisited)
{
label = l;
wasVisited = wasvisited;
}
Vertex::Vertex(void)
{
}
class AdjMWGraph
{ private:
//int Vertices[10]; //顶点信息的数组
vector Vertices;//array of vertices
int Edge[MaxVertices][MaxVertices]; //边的权信息的矩阵
int numE; //当前的边数
int numV; //当前的顶点数
stack st;
queue qu;
public:
AdjMWGraph(); //构造函数
void CreatG(int n,int e);
void PrintOut();
void Prim() ; //求最小生成树方法
void displayVertex(int v);
int getAdjUnvisitedVertex(int v);
void dfs(); //深度优先搜索
public:
\x05void bfs(); //宽度优先搜索
};
AdjMWGraph::AdjMWGraph() //构造函数
{ for ( int i=0; i