三种存图方式

一、邻接矩阵

    int i, j;
    int a[maxn][maxn];
    //a[i][j]代表i-->j 
    if (i-- > j有边) a[i][j] = 1;
    else a[i][j] = 0;

二、vector

  • 没有权值的情况
    vector<int> v[maxn];
    if (i--> j有边) v[i].push_back(j);
    //遍历,查找u能否达到h
    for (int k = 0; k < v[u].size(); k++) {
        int tmp = v[u][k];
        if (tmp == h) return u--> h有边
    }
  • 有权值的情况
struct Node {
    int to, dis;
};

     if (i--> j有边) {
        Node n={j,dis};
        v->push_back(n);
    }
    //遍历,查找u能否达到h
    for (int k = 0; k < v[u].size(); k++) {
        Node tmp = v[u][k];
        if (tmp == h) return u--> h有边
    }

三、邻接链表(略)

发布了8 篇原创文章 · 获赞 0 · 访问量 85

猜你喜欢

转载自blog.csdn.net/skyyemperor/article/details/104405054
今日推荐