对有向无环图顶点重新编号使其邻接矩阵变为下三角矩阵

本文探讨如何对有向无环图(DAG)的顶点进行重新编号,以使生成的邻接矩阵转换为下三角矩阵。这种优化对于简化数据结构和提高算法效率具有重要意义。
摘要由CSDN通过智能技术生成

对有向无环图顶点重新编号使其邻接矩阵变为下三角矩阵

Status Change_into_LTM(MGraph &G){
    //将采用邻接矩阵存储的有向无环图的邻接矩阵转换为下三角矩阵,并输出新旧编号对照表
    int topologic_order[G.vexnum];//拓扑序列,反过来就是逆拓扑序列
    //topologic_order[G.vexnum - 1 - 新序号] = 旧序号
    int num = 0;//拓扑序列指针
    FindInDegree(G,indegree);//求入度序列
    InitStack(S);
    for(i = 0;i < G.vexnum;i++)
        if(!indegree[i]) Push(S,i);
    while(!StackEmpty(S)){
        Pop(S,i); topologic_order[num++] = G.vertices[i].data;
        for(j = 0;j < G.vexnum;j++)
            if(G.arcs[i][j] && !(--indegree[j])) Push(S,j);
    }//while
    int new_old[G.vexnum];//新旧参照表
    for(i = 0;i < G.vexnum;i++) new_old[topologic_order[G.vexnum - 1 - i]] = i;
    //new_old[旧序号] =
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值