我有一个 DAG 实现,非常适合我的需求。我将它用作我的一个项目的内部结构。最近,我遇到了一个用例,如果我修改一个节点的属性,我需要将该属性传播到它的父节点并一直传播到根节点。我的 DAG 中的每个节点当前都有一个邻接列表,该列表基本上只是对节点子节点的引用列表。但是,如果我需要将更改传播到此节点的父节点(并且此节点可以有多个父节点),我将需要一个对父节点的引用列表。
这可以接受吗?或者有没有更好的方法来做到这一点?维护两个列表(一个给父母,一个给孩子)是否有意义?我想将父母添加到同一个邻接列表中,但这会给我每个父子关系的循环(即,父->子和子->父)。