Gremlin Match Traversal包含重复结构

时间:2017-03-14 08:24:59

标签: gremlin graph-traversal tinkerpop3

您好我正在尝试匹配可能具有ContainsB边缘路径的子图。

enter image description here

已知部分是具有id 1,2,3和6的顶点及其边缘。未知的是1到6之间的顶点及其id的数量。匹配从id = 1的顶点开始。匹配遍历需要匹配整个子图,其限制为4到6之间的10个步骤。在平凡的情况下,id为6的顶点直接与id = 1到顶点#include <iostream> #include <string> #include <stdlib.h> using namespace std; int arr[] = {4,5,2,1,3}; int lengd = sizeof(arr)/sizeof(arr[0]); void swapNumber(int arr[], int i, int j){ int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } void partition(int arr[], int i, int j){ int pivot = arr[j]; while (i <= j) { while (arr[i] < pivot){ i++; } while (arr[j] > pivot){ j--; } if (i <= j) { swapNumber(arr, i, j); i++; j--; } } } void quickSort(int arr[], int left, int right) { int i = left; int j = right; partition(arr,left,right); if (left < j){ quickSort(arr,left, j); } if (i < right){ quickSort(arr, i, right); } } int main(){ quickSort(arr,0, lengd-1); for(int i = 0; i < 5; i++){ cout << arr[i] << endl; } } 的顶点连接。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

我认为这似乎按我想要的方式运作:

g.V().match(
   __.as("s").hasId("1").outE("ContainsB").inV().until(hasId("6")).repeat(out("Extends")).limit(10),
   __.as("s").hasId("1").outE("ContainsA").inV().hasId("2"),
   __.as("s").hasId("1").outE("ContainsC").inV().hasId("3")
)