邻接矩阵创建图的思想核心:
邻接矩阵其处理的是顶点与顶点之间的关系(图中顶点与顶点的关系有邻接关系哦),其实质就是用一个二维数组存储权(与图或弧相关的数),其数组的下标就是顶点的下标值;
#include
const int Maxvex = 100;
class MGraph{
public:
MGraph();
~MGraph();
private:
char vexs[Maxvex];
int arc[Maxvex][Maxvex];
int numvexs = 0; //图中的顶点数
int nummgrph = 0; //图中的边数
};
MGraph::~MGraph()
{
}
MGraph::MGraph()
{
int a, b, w;
std::cout << “please enter numvexs:”;
std::cin >> numvexs;
std::cout << “please enetr nummgrph:”;
std::cin >> nummgrph;
for (int i = 0; i < numvexs; ++i)
{
std::cin << vexs[i]; //输入顶点信息,建立顶点表
}
for (int j = 0; j < numvexs; ++j)
{
for (int k = 0; k < numvexs; ++k)
{
arc[j][k] = 0; //邻接矩阵初始化
}
}
for (int i = 0; i < nummgrph; ++i)
{
std::cout << "(Vi,Vj)" << "w";
std::cin >> a >> b >> w;
arc[a][b] = w;
arc[a][b] = arc[b][a]; //无向图具有对称性;
}
for (int i = 0; i < numvexs; ++i)
{
for (int j = 0; j < numvexs; ++i)
{
std::cout << arc[i][j] << "\n";
}
}
}
int main(int argc, char**argv)
{
MGraph mg;
return 0;
}