图的顶点的拓扑排序,返回关键路径长度
来源:互联网 发布:淘宝店铺客户流失分析 编辑:程序博客网 时间:2024/05/01 00:49
函数int Toplogical(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下:
typedef struct Gnode { int adjvex;//邻间节点的编号 int weight;//弧上的权值 struct Gnode *nextarc;//指向下一个弧的节点}Gnode;typedef struct Adjlist {//邻接表的头结点类型 char vdata;//顶点的数据信息 struct Gnode *firstadj;//指向邻接表的第一个表节点}Adjulist;typedef struct LinledWDigraph {//图的类型 int n, e;//图中顶点的个数和边数 struct Adjlist *head;//指向图中第一个顶点的邻接表的头节}LinkedWDigraph;
AOE网
AOE网邻间表存储结构
Toplogical(LinkedWDigraph G)函数的具体实现如下。
int Toplogical(LinkedWDigraph G){ Gnode *p; int j, w, top =0 ; int *Stack, *ve, *indegree; ve = (int *)malloc((G.n + 1) * sizeof(int)); indegree = (int *)malloc((G.n + 1) * sizeof(int));//存储网中各顶点的入度 Stack = (int *)malloc((G.n + 1) * sizeof(int));//存储入度为0的定点的编号 if (!ve || !Stack || !indegree) printf("!!!!FALSE!!!!"); for (j = 1; j <= G.n; j++){//初始化 ve[j] = 0; indegree[j] = 0; } for (j = 0; j <= G.n; j++){//求网中各顶点的入度 p = G.head[j].firstadj; while (p){ indegree[p->adjvex]++; p = p->nextarc; }/*while*/ }/*for*/ for (int j = 0; j <= G.n; j++){ if (!indegree[j]) Stack[++top] = j; while (top > 0){ w = Stack[top--]; printf("%c", G.head[w].vdata); p = G.head[w].firstadj; while (p){ indegree[p->adjvex]--; if (!indegree[p->adjvex]) Stack[++top] = p->adjvex; if (ve[w]+p->weight>ve[p->adjvex]) ve[p->adjvex] = ve[w] + p->weight; p = p->nextarc; }/*while*/ }/*whlie*/ } return ve[w];}/*Toplogical*/
阅读全文
0 0
- 图的顶点的拓扑排序,返回关键路径长度
- 图的拓扑排序与关键路径
- 图的关键路径与拓扑排序
- 【拓扑排序下的关键路径】
- 数据结构---->图的应用(拓扑排序,关键路径)
- 图的应用之拓扑排序与关键路径
- 数据结构-----图的拓扑排序和关键路径算法
- 06-4. How Long Does It Take (25)拓扑排序 求关键路径的最长的长度
- 拓扑排序关键路径
- 拓扑排序,关键路径
- 拓扑排序&关键路径
- 拓扑排序--关键路径
- 关键路径 + 拓扑排序
- 图功能的实现C++(最短路径,关键路径,拓扑排序,关节点,~~~~~~~~~~等等)
- 图的拓扑排序、关键路径、最短路径算法 -- C++实现
- AOE网上的关键路径(拓扑排序+SPFA算法)
- 图(五)关键路径和拓扑排序
- 图-----------拓扑排序+AOE网络关键路径
- 《maven实战》学习笔记3——maven使用入门
- Jmeter与LoadRunner的异同
- maven-war-plugin 插件打包时,src/main/java 目录下mybatis的映射文件如何配置
- linux 连接数据库 命令行模式
- GalaxyOJ-1000 (缩点+最短路)
- 图的顶点的拓扑排序,返回关键路径长度
- docker安装nginx
- 我的Kali Linux渗透测试学习之路
- java在运行时获取泛型实例的方法
- mongoDB基本启动命令
- linux上项目正常部署之后正常启动,但是访问不到。。。。。
- numpy 参数(一) —— np.linalg
- iPhone x首周销量惊人?奈何玩起《王者荣耀》来却是个梗!
- BeautifulSoup4