#include<iostream>
using namespace std;
#include<vector>
#include<assert.h>
struct graph
{
int n, m;//n表示点数,m表示边数
bool directed;//表示是否是有向图,还是无向图
vector<vector<bool>>g;//邻接矩阵
};
//初识化图
void Init(graph&t,int n,bool directed)
{
t.n = n;
t.m = 0;
t.directed = directed;
for (int i = 0; i < n; i++)
{
t.g.push_back(vector<bool>(n,false));
}
}
//插入边
void Insert(graph&t,int v,int w)
{
assert(v >= 0 && v < t.n);
assert(w >= 0 && w < t.n);
t.g[v][w] = true;
//如果不是无向图,w,v之间也要插入一条边
if (!t.directed)
t.g[w][v] = true;
}
int main()
{
graph t;
Init(t, 5, false);
Insert(t,1,2);
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
cout << t.g[i][j] << " ";
}
cout << endl;
}
return 0;
}
图的存储(邻接矩阵)
最新推荐文章于 2024-06-12 09:31:30 发布