AOV网,顶点表示活动,弧表示活动间的优先关系的有向图。

即如果a->b,那么a是b的先决条件。

AOE网,边表示活动,是一个带权的有向无环图,

其中顶点表示事件,弧表示活动,权表示活动持续时间。

按我理解,你要求拓扑序列就是AOV,求关键路径就是AOE

具体是要实现 计算一个电力网络的东西 有很多节点互相连接 有一个现成的算法可以计算节点之间断路的风险
现在算法已经弄好了 但是网状的结构如何在c++中实现?
我不是学计算机的,因为会一点编程被人赶鸭子上架来干这个。。。
希望指出一点思路就可以了

c/c++的话,可以自己定义一个结构体。

按照你描述的情况,这个结构体或者类,可以定义为如下式样(推荐定义成类):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class ElectricNode
{
  // 这里仅提供一些基本供参考的成员定义,我也不知道你要保存什么东西
  public:
      ElectricNode();
      virtual ~ElectricNode();
       
  private:
  // 这里定义一些这个节点相关的信息(不是太懂,猜想比如有节点的电压啊、最大允许的电流负荷啊什么的,都能做成员变量保存在这里,这些是节点相关的信息。)
  // 最重要的是一个网状的结构体系,因为某一个节点可能与未知数量的节点连接,而且为了便于修改连接关系,推荐使用c++现有的vector结构做拓展
  vector<ElectricNode> m_nodes_connected;  // 只保存与他相连的节点
};
 
整体的话,可以直接用一个vector<ElectricNode>存储所有的电网的点,因为每一个ElectricNode类都记住了这个点相关的信息以及和他相连接的点,自然就形成了一个网了。
因为STL的这些标准容器都提供了数组越界检查、内存自动分配、以及一系列的存取查找删改相关的方法,操作起来比较方便,比自己写数组管理方便很多,也比较安全可靠。再加上类的话,能够提供一些方法,比如内一个节点自己里面就能做一些短路风险相关的计算准备工作,或者直接提供准确的数值,对于外部叠加上来的算法,不论是书写还是计算,都方便很多,就算日后调整、修改算法,也是十分方便的

数据结构关于AOV与AOE网的区别的更多相关文章

  1. 算法与数据结构(八) AOV网的关键路径

    上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...

  2. 算法与数据结构(八) AOV网的关键路径(Swift版)

    上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...

  3. AOE网与关键路径简介

    前面我们说过的拓扑排序主要是为解决一个工程能否顺序进行的问题,但有时我们还需要解决工程完成需要的最短时间问题.如果我们要对一个流程图获得最短时间,就必须要分析它们的拓扑关系,并且找到当中最关键的流程, ...

  4. 基于AOE网的关键路径的求解

    [1]关键路径 在我的经验意识深处,“关键”二字一般都是指临界点. 凡事万物都遵循一个度的问题,那么存在度就会自然有临界点. 关键路径也正是研究这个临界点的问题. 在学习关键路径前,先了解一个AOV网 ...

  5. 教你轻松计算AOE网关键路径(转)

    原文链接:http://blog.csdn.net/wang379275614/article/details/13990163 本次结合系统分析师-运筹方法-网络规划技术-关键路径章节,对原文链接描 ...

  6. 教你轻松计算AOE网关键路径

    认识AOE网 有向图中,用顶点表示活动,用有向边表示活动之间开始的先后顺序,则称这种有向图为AOV网络:AOV网络可以反应任务完成的先后顺序(拓扑排序). 在AOV网的边上加上权值表示完成该活动所需的 ...

  7. AOE网与关键路径

    声明:图片及内容基于https://www.bilibili.com/video/BV1BZ4y1T7Yx?from=articleDetail 原理 AOE网 关键路径 数据结构 核心代码 Topo ...

  8. _DataStructure_C_Impl:AOE网的关键路径

    //_DataStructure_C_Impl:CriticalPath #include<stdio.h> #include<stdlib.h> #include<st ...

  9. 外网IP和内网IP区别

    外网IP和内网IP区别? 网络结构 如图,假设我们的计算机现在就是设备一,我们想要访问百度.如果我们正使用着校园网,那么首先我们需要先通过校园网的路由器把我们的内网ip转为校园网的外网ip.然后通过这 ...

随机推荐

  1. VS重置命令:devenv.exe/resetuserdata

    VS命令行下执行下面的命令: devenv.exe/resetuserdata

  2. IOS8 通知中心(Notification Center)新特性

     本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/30029441   ios手机apple通知中心notificationCenter ...

  3. php 实现简单加入购物车

    今天在练习购物车以及提交订单,写的有点头晕,顺便也整理一下,这个购物车相对来说比较简单,用于短暂存储,并没有存储到数据库, 购物车对于爱网购的人来说简直是熟悉的不能再熟悉了,在写购物车之前,我们首先要 ...

  4. JS中正则匹配开头不带空格,结尾也不带空格的字符串

    在做项目的时候,要求限制SSID的长度.以及开头和结尾不能是空格. var reg = /^\S.{0,30}\S$/ "$$$  $$".match(reg);   ==> ...

  5. Chain of Responsibility Pattern

    1.Chain of Responsibility模式:将可能处理一个请求的对象链接成一个链,并将请求在这个链上传递,直到有对象处理该请求(可能需要提供一个默认处理所有请求的类,例如MFC中的Cwin ...

  6. php获取accesstoken和二维码的实现方法

    class WeChat{ private $_appid; private $_appsecret; private $_token; public function __construct($_a ...

  7. Disruptor学习杂记

    慎入,有点乱,只是学习记录,disruptor_2.10.4 1.Disruptor对象有一个EventProcessorRepository对象   2.EventProcessorReposito ...

  8. jquery特效(2)—选项卡

    最近公司有个页面正好用到了选项卡,我就写了一下,感觉还不错,都挺简单的. 下面来看动态效果: 一.主体程序 <!DOCTYPE html> <html> <head> ...

  9. python把字典写入excel之一例

    直接上代码: # -*- coding: utf-8 -*- import xlsxwriter #生成excel文件 def generate_excel(expenses): workbook = ...

  10. 在Eclipse Java EE编译器中修改Web项目的发布名称

    在工程目录上右键, 选properties, 弹出属性窗口, 选中Web Project Settings, 在右边的Context root中修改保存即可 死马当做活马医 在你的工程目录下找到.se ...