有向无权图
#include <iostream>
#include <vector>
#include <cstdlib>
#define MAX 10000
using namespace std;
vector<int> p[MAX];
int main()
{
int n, m;
cin >> n >> m; //n个顶点m组数据
for(int i = 0; i < m; i++)
{
int start,to;
cin>>start>>to;
p[start].push_back(to);
}
for(int i = 1; i <= n; i++)
{
for(int j=0; j<p[i].size(); j++)
{
cout << p[i][j] << " ";
}
cout<<endl;
}
return 0;
}
无向无权图:
#include <iostream>
#include <vector>
#include <cstdlib>
#define MAX 10000
using namespace std;
vector<int> p[MAX];
int main()
{
int n, m;
cin >> n >> m; //n个顶点m组数据
for(int i = 0; i < m; i++)
{
int start,to;
cin>>start>>to;
p[start].push_back(to);
p[to].push_back(start);
}
for(int i = 1; i <= n; i++)
{
for(int j=0; j<p[i].size(); j++)
{
cout << p[i][j] << " ";
}
cout<<endl;
}
return 0;
}
有向有权图
#include <iostream>
#include <vector>
#include <cstdlib>
#define MAX 10000
using namespace std;
struct node
{
int start,to,w;
};
vector<node> p[MAX];
int main()
{
int n, m;
cin >> n >> m; //n个顶点m组数据
for(int i = 0; i < m; i++)
{
int a,b,c;
cin>>a>>b>>c;
p[a].push_back(node{b,c});
}
for(int i = 1; i <= n; i++)
{
for(int j=0; j<p[i].size(); j++)
{
cout <<i<<" "<<p[i][j].to<< " "<<p[i][j].w<<endl;
}
cout<<endl;
}
return 0;
}
无向有权图
#include <iostream>
#include <vector>
#include <cstdlib>
#define MAX 10000
using namespace std;
struct node
{
int to,w;
};
vector<node> p[MAX];
int main()
{
int n, m;
cin >> n >> m; //n个顶点m组数据
for(int i = 0; i < m; i++)
{
int a,b,c;
cin>>a>>b>>c;
p[a].push_back(node{b,c});
p[b].push_back(node{b,c});
}
for(int i = 1; i <= n; i++)
{
for(int j=0; j<p[i].size(); j++)
{
cout <<i<<" "<<p[i][j].to<< " "<<p[i][j].w<<endl;
}
cout<<endl;
}
return 0;
}