一个函数print_graph,该函数的功能是输出图G所对应的邻接矩阵,要求以二维数组形式输出邻接矩阵各元素的值,请将函数体补充完整。
void print_graph(MGraph G)
{
}
struct MGraph {
int vexnum; // 图的顶点数
int arcnum; // 图的边数
std::string* vexs; // 存储顶点信息的数组
int** arcs; // 存储邻接矩阵的二维数组
};
void print_graph(MGraph G)
{
int n = G.vexnum;
int e = G.arcnum;
int** A = G.arcs;
// 输出邻接矩阵的行列数
std::cout << "Adjacency Matrix of the graph:\n";
std::cout << " ";
for(int i = 0; i < n; ++i) {
std::cout << G.vexs[i] << " ";
}
std::cout << std::endl;
// 输出邻接矩阵
for(int i = 0; i < n; ++i) {
std::cout << G.vexs[i] << " ";
for(int j = 0; j < n; ++j) {
std::cout << A[i][j] << " ";
}
std::cout << std::endl;
}
}
void print_graph(adjMatrix * G){
for (int i = 0; i < G->n; i++, putchar(10) )
// putchar(10)是换行,每行换一次行
for (int j = 0; j < G->n; j++)
printf("%d ",G->matrix[i][j]);
putchar(10);
}
运行后的大概模样,仅供参考
结合顶点表输出信息:
void print_graph(adjMatrix * G)
{
int i, j;
printf(" ");
for( i = 0; i < G->n; i++ )
printf("%c ", G->list[i]);
putchar(10);
for( i=0; i<G->n; i++, putchar(10)){
printf("%c ", G->list[i]);
for(j=0; j<G->n; j++)
printf("%d ", G->matrix[i][j]);
}
putchar(10);
}
运行后的大概模样,仅供参考: