节点V的中间性定义为 所有成对的节点之间最短路径的比例 通过V。
我查看了tinkerpop食谱文档,但我认为它没有帮助/不起作用。即返回
......1>
当我运行查询时。
运行的查询是:
g.V().as("v").repeat(both().simplePath().as("v")).emit().
filter(project("x","y","z").by(select(first, "v")).
by(select(last, "v")).
by(select(all,"v").count(local)).as("triple").
coalesce(select("x","y").as("a").
select("triples").unfold().as("t").
select("x","y").where(eq("a")).
select("t").
store("triples")).
select("z").as("length").
select("triple").select("z").where(eq("length"))).
select(all, "v").unfold().
groupCount().next()
我正在使用劳伦斯提供的航空路线数据,如本指南http://kelvinlawrence.net/book/Gremlin-Graph-Guide.pdf中所述。它不包含中心度度量。.我从下面开始,它将a)不给出任何循环路径,并且b)generate()调制器“输出”所有遍历的顶点
g.V().repeat(both().simplePath()).emit()
我如何从这里开始计算节点之间的重心/或者在其他地方开始。
答案 0 :(得分:1)
您实际上是从Gremlin食谱站点修改的查询,store("triples")
和Given a binary tree : [1,2,2,3,3,null,null,4,4]. Determine if it's a balanced tree or not.
And I had the solution:
public boolean isBalanced(TreeNode root) {
int height = heightCalculation(root);
if(height > 1) return false;
else
return true;
}
public int heightCalculation(TreeNode root){
if(root == null)
return 0;
int left_height = Integer.MIN_VALUE;
int right_height = Integer.MIN_VALUE;
left_height = heightCalculation(root.left);
right_height =heightCalculation(root.right);
return Math.abs(left_height - right_height);
}
The tree structure looks like:
1
/ \
2 2
/ \
3 3
/ \
4 4
之间应该有逗号,而不是句点。但是,此查询可能对航路图不起作用,因为它具有太多路径。如配方下方所述,该查询仅适用于非常小的(子)图形。即使您有足够的内存来进行计算,我认为您也必须等待一段时间(几小时?),直到看到结果。
IMO,对于这种大小的图形,应考虑使用不同的中心度算法。最后,算法之间的结果差别不会太大,通常,图形越大,您对每个顶点的准确中心度值的关注就越少。例如,经典的PageRank算法可以在较大的图形上很好地运行。