我使用邻接列表来表示有向加权图,并根据此 SO问题提供的示例代码,我创建了以下内容:
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
public class _Graph {
private Map<String, LinkedHashSet<HashMap<String, Integer>>> map = new HashMap<String, LinkedHashSet<HashMap<String, Integer>>>();
public void addEdge(String node1, String node2, int dist) {
LinkedHashSet<HashMap<String, Integer>> adjacent = map.get(node1);
HashMap<String, Integer> innerMap = new HashMap<String, Integer>();
if(adjacent==null) {
adjacent = new LinkedHashSet<HashMap<String, Integer>>();
map.put(node1, adjacent);
}
innerMap.put(node2, dist);
adjacent.add(innerMap);
}
public boolean isConnected(String node1, String node2) {
Set<HashMap<String, Integer>> adjacent = map.get(node1);
if(adjacent==null) {
return false;
}
return …Run Code Online (Sandbox Code Playgroud) 我想从路径枚举列创建面包屑.
这是我拥有的数据集的示例.
id woeid parent_woeid country_code name language place_type ancestry
祖先是枚举的路径,就像1/23424975/24554868/12602167/12696151布莱顿在英格兰的路径一样.
我希望能够通过查询name专栏来检索面包屑,并让所有的父母.
即.世界,欧洲,英格兰,[县],[镇],[地区],[地方]
([] = a placeholder)
数据永远不会更改,这就是此表使用Adjacency List和路径枚举的原因.
我以前从未听过这个,或者我用其他方式听过这个?
上下文是对于邻接列表,列出与u相邻的所有顶点的时间是?(deg(u)).
类似地,确定是否(u,v)∈E的时间O(deg(u)).
如果邻接列表的实现是一个数组,那么我认为在数组中找到u将是恒定的时间.
如果所有相邻顶点都链接到u,那么我认为O(n)列出或找到所有顶点需要时间,其中n是相邻顶点的数量.
这基本上?(deg(u))意味着什么?
给定有向图的邻接表表示,计算每个顶点的出度需要多长时间?计算学位需要多长时间?
谢谢
我是图表分区的新手,但我认为我问的问题应该已经有了一个很好的答案.我只想将一个巨大的网络(数十亿个节点)划分为几个子图.所以当使用MPI时,每个子图由不同的处理器处理.我目前正在使用图表的邻接列表表示.什么算法可以做到这一点?谢谢!
parallel-processing graph mpi adjacency-list database-partitioning
令 G = (V, E) 是一个有向图,以邻接表格式给出。定义一个有向图 G' = (V, E') 其中一条边 (u, v) ? E' 当且仅当 (v, u) ? E(即G'反转G中每条边的方向)。描述一种在 O(|V | + |E|) 时间内获得 G' 的邻接表表示的算法。
有没有一种简单的方法来反转邻接表?
说如果是:
a-> b
b-> de
c-> c
d-> ab
e->
Run Code Online (Sandbox Code Playgroud)
到:
a-> d
b-> ad
c-> c
d-> ab
e-> b
Run Code Online (Sandbox Code Playgroud) 我正在阅读this ,其中包含旧的java包,例如sun包。我发现其中一些很有用。
其中是sun.security.provider.certpath.Vertex,它代表一个顶点,在 Vertex 类之后是 AdjacencyList ie sun.security.provider.certpath.AdjacencyList,它代表顶点的邻接列表。
从文档说,
AdjacencyList 用于存储认证路径的历史记录。
这是专门为 X500 证书及其路径定义的,并忽略了无法抑制的内部 API 警告?我们可以将这些类用于解决 JDK 1.8 上的问题的通用图吗?
考虑一个基本的邻接表;节点的列表由节点类代表,具有属性id,parent_id和name。顶级节点的parent_id = None。
将列表转换为无序 html 菜单树的 Pythonic 方式是什么,例如:
我正在创建一个预填充的嵌套数组,并希望将元素推送到特定索引,但这些元素被添加到所有索引。
let arr = new Array(4).fill([])
arr => Array(4) [ [], [], [], [] ] //this is what I want
arr[0].push(3)
arr => Array(4) [ [3], [3], [3], [3] ] //I only wanted to push 3 to first index,
//why do all indexes have this element?
Run Code Online (Sandbox Code Playgroud)
任何有关如何更新一个索引的帮助将不胜感激。