有向图的邻接矩阵代码实现
其实是和无向图一样啦~ 只是少了对称的那部分
#include<iostream>
using namespace std;
#define INF 65535
#define MAXVEX 10
struct MGraph
{
char Vertex[MAXVEX]; //顶点表
int arc[MAXVEX][MAXVEX]; //邻接矩阵
int vexnum; //顶点数量
int edgenum; //边的数量
};
//创建邻接矩阵
void Create(MGraph& G)
{
int i, j, k, w;
cout << "请输入顶点数:" << endl;
cin >> G.vexnum;
cout << "请输入边数:" << endl;
cin >> G.edgenum;
cout << "请输入顶点信息:" << endl;
for (i = 0; i < G.vexnum; i++)
{
cin >> G.Vertex[i];
}
//邻接矩阵初始化
for (i = 0; i < G.vexnum; i++)
{
for (j = 0; j < G.vexnum; j++)
{
G.arc[i][j] = INF;
}
}
//读入邻接矩阵信息
for (k = 0; k < G.edgenum; k++)
{
cout << "请输入边(vi,vj)的下标i,j和权w:";
cin >> i >> j >> w;
G.arc[i][j] = w;//赋值
}
}
//邻接矩阵的输出
void Print(MGraph& G)
{
cout << endl;
for (int i = 0; i < G.vexnum; i++)
{
for (int j = 0; j < G.vexnum; j++)
{
printf("%8d", G.arc[i][j]);
}
cout << endl;
}
}
int main()
{
MGraph mg;
Create(mg);
Print(mg);
system("pause");
return 0;
}