第十二周 【项目5
来源:互联网 发布:mac 虚拟机装office 编辑:程序博客网 时间:2024/06/07 20:48
- /* 程序头部注释开始
- * 程序的版权和版本声明部分
- * Copyright (c) 2017, 烟台大学计算机学院学生
- * All rights reserved.
- * 文件名称: danlianbao.cpp
- * 作 者: 胡俊超
- * 完成日期: 2017 年 11 月 30 日
- * 版 本 号: v1.0
- * 对任务及求解方法的描述部分
- * 问题描述:
- 根据所视图进行拓扑排序算法的验证
#include <stdio.h>#include <malloc.h>#include "graph.h"void TopSort(ALGraph *G){ int i,j; int St[MAXV],top=-1; //栈St的指针为top ArcNode *p; for (i=0; i<G->n; i++) //入度置初值0 G->adjlist[i].count=0; for (i=0; i<G->n; i++) //求所有顶点的入度 { p=G->adjlist[i].firstarc; while (p!=NULL) { G->adjlist[p->adjvex].count++; p=p->nextarc; } } for (i=0; i<G->n; i++) if (G->adjlist[i].count==0) //入度为0的顶点进栈 { top++; St[top]=i; } while (top>-1) //栈不为空时循环 { i=St[top]; top--; //出栈 printf("%d ",i); //输出顶点 p=G->adjlist[i].firstarc; //找第一个相邻顶点 while (p!=NULL) { j=p->adjvex; G->adjlist[j].count--; if (G->adjlist[j].count==0)//入度为0的相邻顶点进栈 { top++; St[top]=j; } p=p->nextarc; //找下一个相邻顶点 } }}int main(){ ALGraph *G; int A[7][7]= { {0,0,1,0,0,0,0}, {0,0,0,1,1,0,1}, {0,0,0,1,0,0,0}, {0,0,0,0,1,1,0}, {0,0,0,0,0,0,0}, {0,0,0,0,0,0,0}, {0,0,0,0,0,1,0} }; ArrayToList(A[0], 7, G); DispAdj(G); printf("\n"); printf("拓扑序列:"); TopSort(G); printf("\n"); return 0;}
图的基本算法库- http://blog.csdn.net/zikun6578/article/details/78486452
阅读全文
0 0
- 第十二周 【项目5
- 第十二周 【项目5
- 第十二周项目3--5
- 第十二周项目训练5
- 第十二周项目(5)
- 第十二周 项目(5)
- 第十二周 项目(5)
- 第十二周项目5-银行系统
- 第十二周项目一:阅读程序5
- 第十二周项目-阅读与程序5
- 第十二周 项目一 程序阅读 5
- 第十二周项目1(5)
- 第十二周 项目一 程序阅读5
- 第十二周项目三(5)
- 第十二周项目三(5)二进制
- 第十二周阅读项目(5)
- 第十二周 阅读项目 (5)
- 第十二周-图项目四(5)
- cout的格式化控制
- leetcode160-Intersection of Two Linked Lists
- 自定义URL用scheme唤起Activity
- Java多线程编程:Callable、Future和FutureTask浅析
- SQL-已存在数据的表主键设置递增
- 第十二周 【项目5
- DevExpress XtraTabControl 加载Form,不重复显示,自动定位打开页面
- webstorm破解方法(亲测可用)
- 12.Python
- zookeeper笔记(一)
- 2018 年趋势:AI 和物联网的未来将会如何?
- 第十周项目一 二叉树构造算法的验证---由顺序存储结构转为二叉链存储结构(4)
- ROS创建一个services
- 阿里云负载均衡器(SLB)的配置方法