2 wiflsnmo wiflsnmo 于 2016.04.12 16:36 提问

图的算法问题 已知边的起止节点求其中一个系统节点总数

求大神帮我想个算法,我有n组数据对,src->target,展示出来就是数个有向无环图,每个分隔的图称为一个系统,要求给出两个数据我能知道这两个数在不在同一个系统以及这个系统的节点总数是多少。有没有什么简单可行的方法啊
图片说明图片说明

1个回答

caozhy
caozhy   Ds   Rxr 2016.04.12 17:48

无非就是递归遍历。你每个节点除了本身数据之外,加上一个bool值表示是否被遍历过,伪代码如下:
int countNode(Node n)
{
int r = 0;
n.Visited = true;
for (subn : n.Nodes)
{
if (!subn.Visited)
r += countNode(subn);
}
return r + 1;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
求一个连通图的割点,割点的定义是,如果除去此节点和与其相关的边,图不再连通,描述算法
已知先序遍历和中序遍历,求后序遍历 && 求二叉树中节点的最大距离
利用禁忌算法求解图节点着色问题
关于求树中每层的节点总数
基于分布式学习的大规模网络入侵检测算法(pdf)摘 要: 计算机网络的高速发展,使处理器的速度明显低于骨干网的传输速度,这使得传统的入侵检测方法无法 应用于大规模网络的检测.目前,解决这一问题的有效办法是将海量数据分割成小块数据,由分布的处理节点并行理.这种分布式并行处理的难点是分割机制,为了不破坏数据的完整性,只有采用复杂的分割算法,这同时也使分割 模块成为检测系统新的瓶颈.为了克服这个问题,提出了分布式神经网络学习算法,并将其用于大规模网络入侵检 测.该算法的优点是,大数据集可被随机分割
递归方式+FindWindow 遍历窗口句柄。查找已知句柄下的所有句柄。按节点方式保存
设计一个算法,求非空二叉树中指定的第k层(k>1)的叶子节点的个数
图论算法(1)--- 如何求每一个节点在DAG中的最大深度
程序员面试金典: 9.4树与图 4.2给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。
已知单链表L为按值递增有序的,编写算法将数据元素值在区间[e1,e2]内的所有结点取出建立一个新单链表L1