图
邻接矩阵创建
下面展示一些 内联代码片
。
#include<iostream>
using namespace std;
#define Maxint 32767
#define Maxver 20
typedef int Vertype;
typedef int Edgetype;
class Graph {
private:
Vertype verlist[Maxver];
Edgetype edgelist[Maxver][Maxver];
int vernum, edgenum;
public:
Graph();
~Graph();
void Creategraph();
void Show();
int Locate(int v);
};
Graph::Graph() {
for (size_t i = 0; i < Maxver; ++i) {
verlist[i] = 0;
}
for (size_t i = 0; i < Maxver; ++i) {
for (size_t j = 0; j < Maxver; ++j) {
edgelist[i][j] = Maxint;
}
}
vernum, edgenum = 0;
}
Graph::~Graph() {
delete[] verlist;
delete[] edgelist;
}
int Graph::Locate(int v) {
for (size_t i = 0; i < vernum; ++i) {
if (v == i) {
return i;
}
}
return -1;
}
void Graph::Creategraph() {
cout << "请输入图的顶点数和边数:" << endl;
cin >> vernum >> edgenum;
cout << "请输入顶点的信息:" << endl;
for (size_t i = 0; i < vernum; ++i) {
cin >> verlist[i];
}
int v1, v2, w,i,j;
cout << "请输入顶点和边的信息:" << endl;
for (size_t k = 0; k < edgenum; ++k) {
cin >> v1 >> v2 >> w;
i = Locate(v1);
j = Locate(v2);
edgelist[i][j] = w;
edgelist[j][i] = w;
}
}
void Graph::Show() {
for (size_t i = 0; i < vernum; ++i) {
for (size_t j = 0; j < vernum; ++j) {
cout << edgelist[i][j] << ' ';
}
cout << endl;
}
}
int main() {
Graph g;
g.Creategraph();
g.Show();
system("pause");
return 0;
}