图的存储_邻接表_前向星

//***********************储存***********************

struct node {
    int nxt;  // 相连的点。
    int val;
    int lst;  // 上一条同一起点的边的编号
    node () {}
    node (int next, int value) : nxt(next), val(value) {}
};

node edge[maxn];
int  last[maxn];  // last[i]表示以i为起点的最后一条边的编号。通常初始化为-1

int a, b, c;
for (i=1; i<=q; ++i) {
    sf("%d%d%d", &a, &b, &c);
    edge[i].nxt = b;
    edge[i].val = c;
    edge[i].lst = last[a];
    last[a] = i;
}

//********************遍历**************************

for (int i=1; i<=n; ++i) {
    for (int u = last[now.i]; u!=-1; u=edge[u].lst) {
        // u为以i为起点的一条边的编号。
    }
}

//邻接表用Vector则是很方便的 edge[a].push_back(node(b, c));

 

转载于:https://www.cnblogs.com/cgjh/p/9043891.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值