TB椰程 TypeBuddy 打字搭子

邻接表建图

CSP-J · 编程模板 · 片段 · cpp · 难度 2/5 · 共 532 字

用链表存边,适合稀疏图省空间

  • 图论
  • 邻接表

前置内容

正文

// 邻接表:用链表存边
// 适合稀疏图,省空间
// 每个点挂出边链表
// 无向图需加两条边
#include <cstdio>
int h[10005], nxt[200005], to[200005];
int cnt = 0, n, m;
// 加边:u->v 挂到 u 链首
void add(int u, int v) {
    nxt[++cnt] = h[u];
    // 更新头指向新边
    h[u] = cnt;
    to[cnt] = v;
}
int main() {
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= m; i++) {
        int u, v;
        scanf("%d%d", &u, &v);
        // 无向图加反向边
        add(u, v);
        add(v, u);
    }
    // 遍历 u 的所有出边
    for (int e = h[1]; e; e = nxt[e])
        printf("%d ", to[e]);
    return 0;
}

CSP-J · 编程模板的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK