*Ⱉ*ฅ • 9个月前
`#include <bits/stdc++.h>
using namespace std;
typedef struct {
char vex[MAX];
int edge[MAX][MAX];
int vexnum, arcnam;
} Graph;
int LocateVex(Graph G, char v) {
for (int i = 0; i < G.vexnum; i++) {
if (G.vex[i] == v) {
return i;
}
}
return false;
}
void GreateGraph(Graph &G) {
cout << "zongbianshu:" << endl;
cin >> G.vexnum >> G.arcnam;
cout << "dingdian:" << endl;
for (int i = 0; i < G.vexnum; i++) {
cin >> G.vex[i];
}
for (int i = 0; i < G.vexnum; i++) {
for (int j = 0; j < G.vexnum; j++) {
if (i != j)
G.edge[i][j] = MAXINT;
else
G.edge[i][j] = 0;
}
}
char v1, v2;
for (int i = 0; i < G.arcnam; i++) {
cout << "mmm:" << endl;
cin >> v1 >> v2;
int m = LocateVex(G, v1);
int n = LocateVex(G, v2);
G.edge[m][n] = 1;
G.edge[n][m] = 1;
}
}
void PrintVex(Graph G) {
cout << "shuzu" << endl;
for (int i = 0; i < G.vexnum; i++) {
printf("%7d%7c\n", i, G.vex[i]);
}
}
void PrintArc(Graph G) {
Graph
cout << "shuzu:" << endl;
cout << " |";
for (int i = 0; i < G.vexnum; i++) {
printf("%7d", i);
}
cout << endl << "__________________________________________" << endl;
for (int i = 0; i < G.vexnum; i++) {
printf("%7d|", i);
for (int j = 0; j < G.vexnum; j++)
printf("%7d", G.edge[i][j]);
cout << endl;
}
cout << endl;
}
int main() {
Graph G;
GreateGraph(G);
PrintVex(G);
PrintArc(G);
return 0;
}`
评论:
代码块格式记得打三个点(英文状态下的键盘左上角那个)
#include<bits/stdc++.h>
//这个是C++语法
and买铅笔关gragh什么事,请不要乱粘代码,维护社区环境人人有责
在此提醒看到这个评论的同学,题解代码不能乱粘,至少输出要对得上再考虑写
下面是吐槽:
(甚至邻接矩阵)
我作为一个忠实的领接表党对邻接矩阵浪费空间的问题表示深刻谴责
提个建议
个人认为在MAXINT和MAX那儿用const更好
#define MAXINT 114514
define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便(万能的CSDN)
这么看来,仅仅作为常量使用时,用不可以改变的const更好
define涉及宏,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理
解错误,这对C语言的学习很不利(还是万能的CSDN)
请先登录,才能进行评论