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. MySQL-怎样使update操作sleep一段时间

    )) a on mytest.id=a.id set mytest.name='xiaowang';

  2. 并发回射服务器的最基本实现思路( fork )

    前言 一个服务器,通常会在一段时间内接收到多个请求.如果非要等到处理完一个请求再去处理下一个,势必会造成大部分用户的不满( 尤其当有某个请求需要占用大量时间时 ).如何解决这个问题?让处理这些用户请求 ...

  3. hdu1028(母函数+DP)

    题目信息:求分解整数n的个数q(n);能够母函数或者DP http://acm.hdu.edu.cn/showproblem.php?pid=1028 AC代码: /***************** ...

  4. wpf 模板选择器DataTemplateSelector及动态绑定使用教程

    其实也说不上算是教程了,只是把自己学习的代码拿出来分享一下,同时方便以后遇到类似问题的时候翻一下.MSDN里如是说:通常,如果有多个 DataTemplate 可用于同一类型的对象,并且您希望根据每个 ...

  5. 计算机鼻祖-Donald Knuth(高纳德) 的传奇

    李开复说,练内功,不要仅仅花功夫学习各种流行的编程语言和工具,以及一些公司招聘广告上要求的科目.要把数据结构.算法.数据库.操作系统原理.计算机体系结构.计算机网络,离散数学等基础课程学好.最好还是试 ...

  6. javascript JS递归遍历对象 使用for(variable in object)或者叫for/in和forEach方式

    1.递归遍历查找特定key值(ie9以下不支持forEach) 原文http://www.cnblogs.com/ae6623/p/5938560.html var obj = { first: &q ...

  7. 整形范围 运行Java代码的机器

    Java 无关 C C++ 有关  移植  整形溢出

  8. 第一节 麒麟系统安装+基础环境搭建(JDK+Scala)

    本文重点对没有Linux基础的人员提供高速上手的指导,假设你的开发环境已经搭建好,能够略过本章所讲内容,内容来源于网络.也谢谢这些默默讲自己经验分享的人!近期在学习大数据,有喜欢的朋友能够一起研究. ...

  9. JVM client模式和Server模式

    我们把jdk安装完成后,在命名行输入java -version 不仅可以看到jdk版本相关信息,还会看到类似与 Java HotSpot(TM) 64-Bit Server VM (build 25. ...

  10. 7-5 打印选课学生名单(25 point(s)) 【排序】

    7-5 打印选课学生名单(25 point(s)) 假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数: ...