1邻接矩阵
#include<bits/stdc++.h>
using namespace std;
const int N=1000;
int g[N][N]//图
int n;//顶点
int m;//边
int main(){
//读入
scanf("%d %d",&n,&m);
for(int k=1;k<=m;k++){
int i,j,x;
cin>>i>>j>>x;
g[i][j]=x;
g[j][i]=x;
}
//输出
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<g[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
2关联矩阵
关联矩阵即用一个矩阵来表示各个点和每条边之间的关系,所以当图不是赋权图且无自环时,可以用关联矩阵表示。
读入同上;输出:
void work2(){
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
cout<<b[i][j]<<" ";
}cout<<endl;
}
}
3邻接表
使用vector动态数组
输出:
void work3(){
if(type2==0){
for(int i=1;i<=n;++i){
for(int j=0;j<c1[i].size();++j){
cout<<c1[i][j]<<" ";
}cout<<endl;
}
}else{
for(int i=1;i<=n;++i){
for(int j=0;j<c2[i].size();++j){
cout<<c2[i][j].first<<" "<<c2[i][j].second<<" ";
}cout<<endl;
}
}
}