博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图论算法之拓扑排序的简单代码
阅读量:5288 次
发布时间:2019-06-14

本文共 758 字,大约阅读时间需要 2 分钟。

原创作品,转载请注明出处 

这个代码是我在上一篇博文之前写的,当时只是简单地使用数组来代表一个图。拓扑排序的关键在于不停地寻找入度为0的点,如果算法还没有结束就找不到入度为0的点了,那么这个图中肯定有圈,这也是拓扑排序的一个应用,可以找到一个图中是否有圈。

另一个应用是发现一条贯穿所有节点的通路。

void topsort(){    int stack[vertexnum];    int i = 0;    int j = 0;    int tmp;    node *adjacent;    for(i = 0;i<11;i++)    {        if(at[i].degree == 0)            stack[j++] = i;    }    if(j == 0)    {        printf("there is a circle\n");        return;    }    do{        tmp = stack[--j];        printf("%d\t",tmp);        adjacent = at[tmp].adjacentlist;        while(adjacent)        {            if(!--at[adjacent->i].degree)                stack[j++] = adjacent->i;            adjacent =adjacent->next;        }    }while(j>0);    printf("\n");}

 

转载于:https://www.cnblogs.com/leo0000/p/5711811.html

你可能感兴趣的文章
hdu 2255 二分图最大权匹配 *
查看>>
bzoj 1415 期望+记忆化搜索 ****
查看>>
Lesson_fun
查看>>
黑客语(Leet)
查看>>
【读书笔记】【CLR via C#】【第一章】The CLR’s Execution Model
查看>>
Flex AIR Mobile应用性能解决方案
查看>>
从零学React Native之08Image组件
查看>>
Python学习 - 函数
查看>>
单个索引与复合索引
查看>>
install.php
查看>>
csv导出
查看>>
【软件工程】重构-改善既有代码的设计
查看>>
高可用Kubernetes集群-12. 部署kubernetes-ingress
查看>>
复利计算(结对编程)评论
查看>>
博客园 Mac客户端 2.0 正式发布!
查看>>
Java---容器基础总结
查看>>
清除Windows的DNS缓存
查看>>
发出HTTP请求并获得HTTP响应
查看>>
Eclipse使用Maven创建Dynamic Web Project
查看>>
Raphael实例
查看>>