图的构建 模板

#include<bits/stdc++.h>
using namespace std;
const int N=10000*2+5;
int n,m;
//-----------------链表法-------------
//每行a b c,表示城市a与城市b有长度为c的路
int a,b,c;
int one[N],ver[N],edge[N],Next[N],adj[N];
int tot=0;
void add(int a,int b,int c)//from a to b,w[a][b]=c;
{
	tot++;
	if(one[a]==0) one[a]=tot;
	Next[adj[a]]=tot; adj[a]=tot;
	edge[tot]=c;
	ver[tot]=b;
	return;
}
void Init()
{
	int i,j;
	int a,b,c;
	cin>>n>>m;
	for(i=1;i<=m;i++) {
		scanf("%d%d%d",&a,&b,&c);
		add(a,b,c);//把一个无向边看成两个有向边; 
		add(b,a,c);
	}
	return;
}
//---------------------------------
//--------------链表的第二种----------
int a,b,c;
int one[N],ver[N],edge[N],Next[N];
int tot=0;
void add(int a,int b,int c)//from a to b,w[a][b]=c;
{
	tot++;
	Next[tot]=one[a];
	one[a]=tot;
	ver[tot]=b;
	edge[tot]=c;
	return;
}
void Init()
{
	int i,j;
	int a,b,c;
	cin>>n>>m;
	for(i=1;i<=m;i++) {
		scanf("%d%d%d",&a,&b,&c);
		add(a,b,c);//把一个无向边看成两个有向边; 
		add(b,a,c);
	}
	return;
}
//------------邻接表---------------
//城市x与城市y有长度为z的路
int a[N][N],w[N][N];
int x,y,z;
void Init()
{
	scanf("%d%d",&n,&m);
	int i,j;
	for(i=1;i<=m;i++) {
		scanf("%d%d%d",&x,&y,&z);
		a[x][++a[x][0]]=y;
		a[y][++a[y][0]]=x;
		w[x][y]=w[y][x]=z;
		return;
	}
}
//---------用向量优化邻接表------------
vector<int> a[N];
int w[N][N];
int x,y,z; 
void Init()
{
	scanf("%d%d",&n,&m);
	int i,j;
	for(i=1;i<=m;i++) {
		scanf("%d%d%d",&x,&y,&z);
		a[x].push_back(y);
		a[y].push_back(x);
		w[x][y]=w[y][x]=z;
		return;
	}
}
//---------------------------------
//------------simple图-------------
//稀疏图效率极低
//完全图效率高 
//适用:Floyed.eg 
int w[N][N];
int x,y,z;
void Init()
{
	scanf("%d%d",&n,&m);
	int i,j;
	for(i=1;i<=m;i++) {
		scanf("%d%d%d",&x,&y,&z);
		w[x][y]=w[y][x]=z;
	}
	return;
}
//---------------------------------
//----------存边----------------
//适用:kruscal,bellman-ford 
struct edge
{
	int x;
	int y;
	int w;
};
edge a[N];
void Init()
{
	scanf("%d%d",&n,&m);
	int i,j;
	for(i=1;i<=m;i++) {
		scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].w);
	}
	return;
}
//---------------------------------
int main()
{
	freopen("1.in","r",stdin);
	return 0;
}

发布了17 篇原创文章 · 获赞 3 · 访问量 1706

猜你喜欢

转载自blog.csdn.net/qq_45646484/article/details/104282244