图的存储

Posted on 2023-02-18 20:27  lyc2002  阅读(13)  评论(0编辑  收藏  举报

稠密图

int g[N][N];

稀疏图

边的条数|E|远小于|V|²的图称为稀疏图

// 对于每个点 k,开一个单链表,存储k所有可以走到的点。h[k] 存储这个单链表的尾结点
int h[N], e[N], ne[N], idx;

// 添加一条边a->b
void add(int a, int b)
{
    e[idx] = b;
    ne[idx] = h[a];
    h[a] = idx;
    idx++;
}

// 初始化
idx = 0;
memset(h, -1, sizeof h);