AOV、AOE

本文介绍了一种图的遍历方式——拓扑排序,主要应用于有向无环图(AOV网),并详细解释了拓扑排序的具体实现过程,包括如何记录节点的入度以及如何通过队列来更新节点的入度。
#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<iostream>
#include<string.h>
#include<vector>
#include<queue>
using namespace std;
/*
	拓扑排序:针对AOV网,按事件先后顺序输出(按照一定顺序输出入度为0的节点,并对节点的入度更新)
	做法:定义缓冲队列,输出后修改邻节点的入度
	在此提醒:邻接矩阵和邻接表区别:第二维是数组还是变长 数组

	AOE:
		活动:是一个持续一定时间的事情
		事件:一个活动完成,或者另一个活动开始的标志
		关键活动:不能有任何的松弛,最早开始时间等于最晚开始时间
*/
const int maxn=1e4;
vector<int> g[maxn];
int n,inde[maxn]={0};//入度,在录入数据时可记录(每有一条指向节点i的边,inde[i]++)

bool topsort(){//最后有环就不能完全拓扑排序
	int num=0;
	queue<int> q;
	for(int i=0;i<n;i++)
		if(inde[i]==0)
			q.push(i);
	while(!q.empty()){
		int temp=q.front();
		//printf
		q.pop();
		for(int i=0;i<g[temp].size();i++){
			int u=g[temp][i];
			inde[u]--;
			if(inde[u]==0)
				q.push(u);
		}
		num++;
	}
	if(num==n) return true;
	else return false;
}

int main(){

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值