Oop 树,其中每个节点可以有多个父节点
这里有一个理论性/学究式的问题:想象一下,房产中的每一个都可能被多个其他人拥有。此外,从所有权的一次迭代到下一次迭代,两个相邻的所有者可以决定部分合并所有权。例如:Oop 树,其中每个节点可以有多个父节点,oop,design-patterns,tree,graph-theory,composite,Oop,Design Patterns,Tree,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 也就是说,c和d不再拥有财产;可以说,g和h变成了肥猫 我目前将此数据结构表示为一棵树,其中每个孩子可以有多个家长。我的目标是将其
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
也就是说,c
和d
不再拥有财产;可以说,g
和h
变成了肥猫
我目前将此数据结构表示为一棵树,其中每个孩子可以有多个家长。我的目标是将其填充到复合设计模式中;但是,我在如何让客户能够返回并更新以前的所有权而不破坏整个结构的概念基础上遇到了问题
我的问题有两方面
复合模式可以让您轻松地对这种设置进行建模。我欣赏您的推理能力。不幸的是,我没有代码。只是一块白板。我认为,在数据库计算的早期表示数据在最佳和概念上都没有多大意义。就OOP而言,我在想…我不能换行,请耐心听我说:类teritorry{$owners=array();$lastOwners=array();$vertices=array();}而且……在树的更高层次上注入所有权的方法是绝对必要的。@user1119810我不确定我是否理解你最后的评论。正如Mare Infinitus正确指出的那样,这里没有真正的“树”,因此我不确定“更高级别”是什么意思。@user1119810是您的伪代码,如果您跟踪
$lastOwners
,我想这意味着您希望能够至少一个时间步回顾过去。你还需要更多吗?(如果是这样的话,一个数组是不够的。)除此之外,您还需要对这个数据结构进行其他类型的“查询”,这一点非常重要。例如,您是否需要知道给定所有者现在和/或过去拥有什么?还是你对领土更感兴趣?或者你有兴趣获得一些集体数据,比如说,你的世界的“肥猫”程度?哇,turix。谢谢你的提问。这也需要时间。我会再打给你的。我想回答一个简单的问题,更高的层次,我的意思是,更早的时间。也就是说,根据定义,不是一棵树。请看一下我的答案。如果您需要更详细的信息,请提供一些有关您使用的语言的信息。有鉴于此,更具体的例子更容易给出。该死,你的答案需要时间来考虑。我怀疑有好东西。特别是,我希望有关于这方面的图表的干净的文献,而不是第三方的东西。是的,也许我没有很好地模拟这种关系。。。我会再打给你的,不客气。给定任何具有引用或指针的语言,您不需要第三方库。如果您还有其他问题,请留下评论。