// 对图的邻接矩阵和邻接表表示分别进行深度优先搜索遍历算法的实现。
#include "stdafx.h"
#include <iostream>
using namespace std;
//
// 图的实现 邻接矩阵的方法//
//
#define MAXINT 65535 // 用来代表最大整数无穷大
#define MaxVex 100 // 定义最大的顶点数,由用户定义
// 测试类型用char的。顶点中存放char数据。
// 定义出图的结构,构造出图。
typedef struct Graph
{
char Vexs[MaxVex]; // 顶点表;
int Arc[MaxVex][MaxVex]; // 邻接矩阵可看作边表;
int numVertexs,numEdges; // 图中当前的顶点数和边数;
}MGraph;
//
// 创建无向图的方法,建立无向网图的邻接矩阵表示;
void CreateMGraph(MGraph* G)
{
cout << " 请输入顶点数和边数:" << endl;
cin >> G->numVertexs >> G->numEdges; // 输入顶点数和边数;
for (int i = 0;i < G->numVertexs;++ i) // 建立顶点信息,建立顶点表;
{
cin >> G->Vexs[i];
}
for (int i = 0;i < G->numVertexs;++ i)
for (int j = 0;j < G->numVertexs;++ j)
G->Arc[i][j] = MAXINT; // 初始化邻接矩阵;
int iLine = 0,iColumn = 0,iWeight = 0;
for (int k = 0;k < G->numEdges;++ k) // 读入numEdge条数,建立邻接矩阵;
{
cout << "输入边(vi,vj)上的下标i,下标j和权w:" << endl;
cin >> iLine >> iColumn >> iWeight;
G->Arc[iLine][iColumn] = iWeight;
G->Arc[iColumn][iLine] = G->Arc[iLine][iColumn]; // 无向图,矩阵为对称的;
}
}
int main(int argc,char* argv[])
{
MGraph* g = NULL;
CreateMGraph(g);
return 0;
}
#include "stdafx.h"
#include <iostream>
using namespace std;
//
// 图的实现 邻接矩阵的方法//
//
#define MAXINT 65535 // 用来代表最大整数无穷大
#define MaxVex 100 // 定义最大的顶点数,由用户定义
// 测试类型用char的。顶点中存放char数据。
// 定义出图的结构,构造出图。
typedef struct Graph
{
char Vexs[MaxVex]; // 顶点表;
int Arc[MaxVex][MaxVex]; // 邻接矩阵可看作边表;
int numVertexs,numEdges; // 图中当前的顶点数和边数;
}MGraph;
//
// 创建无向图的方法,建立无向网图的邻接矩阵表示;
void CreateMGraph(MGraph* G)
{
cout << " 请输入顶点数和边数:" << endl;
cin >> G->numVertexs >> G->numEdges; // 输入顶点数和边数;
for (int i = 0;i < G->numVertexs;++ i) // 建立顶点信息,建立顶点表;
{
cin >> G->Vexs[i];
}
for (int i = 0;i < G->numVertexs;++ i)
for (int j = 0;j < G->numVertexs;++ j)
G->Arc[i][j] = MAXINT; // 初始化邻接矩阵;
int iLine = 0,iColumn = 0,iWeight = 0;
for (int k = 0;k < G->numEdges;++ k) // 读入numEdge条数,建立邻接矩阵;
{
cout << "输入边(vi,vj)上的下标i,下标j和权w:" << endl;
cin >> iLine >> iColumn >> iWeight;
G->Arc[iLine][iColumn] = iWeight;
G->Arc[iColumn][iLine] = G->Arc[iLine][iColumn]; // 无向图,矩阵为对称的;
}
}
int main(int argc,char* argv[])
{
MGraph* g = NULL;
CreateMGraph(g);
return 0;
}