vaticle-typedb - 有没有办法只获取最深层的节点?
问题描述
我有一个带有“人”节点的图,一些节点之间的“父子”基本关系,以及可传递的“后代”关系。
对于一个特定的“人”,我想得到图表只知道最年长的“祖父母”。这意味着 - 他们不会为任何其他节点播放“孩子”。
什么是实现这一目标的好方法?
谢谢你
解决方案
假设:
- 每个节点有 2 个父节点
- 图是非循环的
首先,读取所有边并将两个父母添加到parent
字典中。这样parent[some_id]
就会有两个父母。然后像这样调用递归函数:
def get_grandpa_age(x):
if not parent[x.id]:
return x.age
mother_side = get_grandpa_age(parent[x.id][0])
fathers_side = get_grandpa_age(parent[x.id][1])
return max(mothers_side, fathers_side)
get_grandpa_age(some_entity)
推荐阅读
- java - 在 JAX-RS 中使用来自应用程序服务器的 EJB
- mysql - 如何从我的另一个 WordPress 获取高级自定义字段数据?
- kubernetes - Kubernetes 是否将所有服务共享为环境变量的功能?
- sas - 在 SAS 数据步骤 monyy5 中将日期转换为字符串。到 yymmn6
- python-3.x - 非基于图像的深度神经网络
- c++ - 如何解决 C++ 代码中的内存泄漏问题
- python - 如何获取未推送到掌握 GitPython 的提交列表
- python - python cv2中多个VideoCapture实例的问题
- amazon-web-services - AWS ELB 使用 X-Forwarded-For 作为客户端 IP 记录到 S3
- bash - 如何通过“sbatch”slurm 命令从远程服务器自动执行“get”命令?