首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从随机边集生成图

从随机边集生成图
EN

Stack Overflow用户
提问于 2016-03-11 03:18:56
回答 1查看 53关注 0票数 0

我有一个随机排列的边,如下所示

代码语言:javascript
复制
edges = [e1 e2 e3...en]

我现在通过测试两个边来生成一组节点。

代码语言:javascript
复制
nodes = []
for edge1 in edges:
    for edge2 in edges:
        if edge1 == edge2 continue
        nodes.append[create_node(edge1, edge2)]

我需要做的是现在创建一个连接节点的图形,一个边。就像这样:

图例

但是,在这种情况下,我只有一组可以看到的边,并且创建了一组节点,在这些节点中,我知道两个父边中的每一个。正如您所看到的,每个边可以是两个节点的一部分。

我不太清楚该如何处理这个问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 05:59:58

假设节点具有以下结构

代码语言:javascript
复制
class Node{
  String name;
  List<Node> friendNodes = new ArrayList();
}
  1. 实例化<node name: Node>的映射,让名称为nodeMap。从现在开始保持空着。
  2. 遍历边的列表。对于边缘e1,节点是n1和n2。
代码语言:javascript
复制
- Check if nodes n1 and n2 are present in nodeMap. If absent add to the nodeMap;
- If edge is directed, suppose from n1 to n2, then add n2 to friendNodes of node n1;
- If edge is undirected, add n2 to friendNodes of node n1 and add n1 friendNodes of node n2. 

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35931577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档