2011-11-22 73 views
1

请看看:我应该如何在Java中实现这个Tree Like概念?

Tree Like architecture

所以基本上我有这样架构的树,是不是一个真正的树,因为根节点可能会或可能不会随时可用。

根连接到许多儿童,反过来可能会或可能不会连接到其他孩子。一个特定级别的所有节点或具有不同id的类似对象作为其标识符。

我想实现它作为一棵树,但随后与大型数据集可能很难搜索特定的节点。或者我应该在每个级别上创建一个Map对象并基于它们的关键字,如果它存在或不存在,我将能够与父节点进行关联。

或者你认为还有另一种更好的方法来做到这一点,因为如果我把它看作一棵树,它会随机增长,再加上它的扩展我有一个问题,有些孩子会有许多父节点,这可能是在树中不可能?

请提出一些实施的想法?

+0

是什么树实际上代表了什么?你能否提供一个具体的例子来说明你将如何搜索它以及你期望得到什么?实质上,每个OO应用程序都是某种级别的树(或图),所以如果没有关于问题域的更多具体细节,很难回答这个问题。 – Adamski

+1

如果一个孩子可以有多个父母,那绝对不是一棵树。 – Tudor

+0

@Adamski,实际上每个节点都是一个对象。其实我很困惑如何根据他们的关系建立关系。就像你有很多对象是随机连接在一起的(但是非常类似于树状结构),我需要建立一些结构,通过它我可以知道它们之间的关系。这就像我们有顶点和边缘定义它们的连接。所以我正在寻找一些关于如何定义这些边缘的想法,以便我可以跟踪他们的孩子和父母的结构......我希望你知道我要问什么? – Johnydep

回答

2

你可以代表它作为一种面向图形:每个节点有其父母入边和出边到其子:

public class Node { 
    private List<Object> parents; // incoming 
    private List<Object> children; // outgoing 
} 
+0

谢谢,这是有道理的...我认为你的想法将工作... – Johnydep