~~~笔锋至此又怎能平淡而终,故事开始便不承认普通✌✌✌
✌ 题目及题解持续更新中
【2023王道数据结构目录】课后算法设计题C、C++代码实现完整版大全
题目: 通过C++实现利用邻接矩阵法存储创建图结构
代码实现:
#includeusing namespace std; #define MAX_VERTEX_NUM 100 typedef struct { char vertex[MAX_VERTEX_NUM]; int edge[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; int vertex_num, edge_num; // 顶点数量、边的数量 } Graph; void InitGraph(Graph &g, char vertex[], int edge[][5], int n) { g.vertex_num = n; g.edge_num = 0; // 初始化图的顶点信息 for (int i = 0; i < n; i++) { g.vertex[i] = vertex[i]; } // 初始化图的邻接矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { g.edge[i][j] = edge[i][j]; // 如果存在路径,将边的条数加1 if (edge[i][j] != 0) { g.edge_num++; } } } // 由于是无向图,最后的边数需要除以2 g.edge_num /= 2; } void PrintGraph(Graph g) { for (int i = 0; i < g.vertex_num; i++) { for (int j = 0; j < g.vertex_num; j++) { cout << g.edge[i][j] << 't'; } cout << endl; } } void InitGraph(Graph &g) { char vertex[] = {'1', '2', '3', '4', '5'}; //图的顶点名称 //图的邻接矩阵 int edge[5][5] = { {0, 1, 0, 1, 0}, {1, 0, 1, 0, 1}, {0, 1, 0, 1, 1}, {1, 0, 1, 0, 0}, {0, 1, 1, 0, 0}}; InitGraph(g, vertex, edge, 5); } int main() { Graph g; InitGraph(g); PrintGraph(g); cout << g.edge_num; }



