搜索

树和图的存储


发布时间: 2022-11-25 00:33:00    浏览次数:43 次

1.稠密图(邻接矩阵)
用二维数组g[N][N],如a -> b, 即g[a][b] = 1;

2.稀疏图(邻接表)
用链表存储

模板

const int N = 100010, M = 2 * M;
int h[N]; //头结点
int e[M]; //节点编号
int ne[M]; //指向下个节点的指针(next)
int w[M];  //如果是带边权的,那么存储每条边的边权
int idx;  //节点编号

void add(int a, int b, int c)  //在头结点为a的链表后插入一个节点b,边权为c
{
    e[idx] = b;  //开辟一个空间,存放a -> b这条边
    w[idx] = c;  //给这条边赋值
    ne[idx] = h[a]; //将头结点的ne指针赋给b的ne指针
    h[a] = idx ++; //将该节点编号(指针)赋给头结点的ne,然后节点编号自加
}

int main(){
    for (int i = 1; i <= n; i ++) //n为节点数
        h[i] = -1; //头结点的ne指针全初始化为-1
        
}


免责声明 树和图的存储,资源类别:文本, 浏览次数:43 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-25 12:33:00。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/lbzbk/p/16916653.html