其他分享
首页 > 其他分享> > 200 邻接表

200 邻接表

作者:互联网

视频链接:

 

 

 

 

 

 

 

 

 

 

// 邻接表 头插法
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 510,M = 3000;
int n,m,a,b,c;
int h[N],e[M],w[M],ne[M],idx;

void add(int a,int b,int c){//加边
  e[++idx]=b,w[idx]=c,
  ne[idx]=h[a],h[a]=idx;
}
void dfs(int u){ //访问
  printf("%d\n",u);
  for(int i=h[u];i;i=ne[i]){
    int v = e[i], c = w[i];
    dfs(v);
  }
}
int main(){
  cin >> n >> m;
  for(int i=1; i<=m; i++){
    cin>>a>>b>>c,
    add(a,b,c);
  }  
  dfs(1);
  return 0;
}

// 邻接表 尾插法
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 510,M = 3000;
int n,m,a,b,c;
vector<int> e[M],w[M];

void dfs(int u){ //访问
  printf("%d\n",u);
  for(int i=0;i<e[u].size();i++){
    int v = e[u][i], c = w[u][i];
    dfs(v);
  } 
}
int main(){
  cin >> n >> m;
  for(int i=1;i<=m;i++){ //加边
    cin>>a>>b>>c,
    e[a].push_back(b),
    w[a].push_back(c);
  }
  dfs(1);
  return 0;
}

 

标签:200,idx,int,void,ne,dfs,邻接,include
来源: https://www.cnblogs.com/dx123/p/16159150.html