一棵树,每个节点可以有多个父节点

Dal*_*ale 9 oop tree design-patterns graph-theory composite

这是一个理论/迂腐的问题:想象一下属性,其中每个属性可以由多个其他人拥有.此外,从所有权的一次迭代到下一次,两个邻近的所有者可以决定部分地结合所有权.例如:

territory 1, t=0: a,b,c,d
territory 2, t=0: e,f,g,h

territory 1, t=1: a,b,g,h
territory 2, t=1: g,h
Run Code Online (Sandbox Code Playgroud)

也就是说,cd不再拥有自己的财产; 可以这么说g,h成了肥猫.

我目前将这个数据结构表示为一个树,每个孩子可以有多个父母.我的目标是将其融入复合设计模式中; 但我遇到的问题是如何在客户可能会回过头来更新以前的所有权而不会破坏整个结构.

我的问题是双重的.

  1. 简单:这个数据结构有什么方便的名称,这样我可以自己谷歌吗?

  2. 辛苦:我做错了什么?当我编码时,我试着保持口头禅,"保持简单,愚蠢",在我脑海里,我觉得我打破了这个信条.

Mar*_*tus 11

我的问题有两个方面:简单:这个数据结构有什么方便的名称,这样我可以自己谷歌吗?

你在这里拥有的不是一棵树,而是一张图.多图会在这里帮到你.但任何邻接列表或邻接矩阵都会给你一个良好的开端.

这是关于邻接矩阵和列表的视频:邻接矩阵和列表上的Youtube

辛苦:我做错了什么?

这真的很难说.也许你没有以适当的方式模仿这种关系.考虑到良好的数据结构,这并不难.

而且,当您询问设计模式时(但您可能已经发现了自己),Composite模式将让您轻松地为这样的设置建模.