如何使树具有多种类型的节点,并且每个节点可以在java中具有多个子节点

时间:2016-06-10 07:05:55

标签: java data-structures tree

基本上我正在尝试实现类似这样的东西,其中伙伴节点是“type1”,客户端节点是“type2”,用户节点是“type3”。并且每个节点可以具有多个子节点。因此,Partner1可以拥有任意数量的客户端节点,类似地,客户端节点可以拥有任意数量的用户。

enter image description here

我已经开始实施,但我现在卡住了。我写的代码如下。

SHA256Managed

如果需要一些见解,请告诉我

2 个答案:

答案 0 :(得分:1)

首先是一些非特定的事情:

您想了解数据封装。将所有公共字段放在您的类上是完全错误的。您实际上希望尽可能隐藏此类信息。

然后你想了解 java编码风格约定;因为你违反了其中的一些(当你向更有经验的java程序员展示代码时,这根本没有用。)

最后,最重要的是:你想要阅读一些关于 OO设计的一般信息(我推荐Robert Martin的“敏捷实践”;有一个免费的PDF版“C#版”那本书):

首先是

a)作为客户/用户是一种“不同的责任”,而不是

b)作为图表中的某个元素

换句话说:你在课堂上放了太多“角色”。

含义:你想介绍各种抽象。例如:

interface GraphNode<N, C extends GraphNode> {
    N getNodeContent();
    List<C> getChildrenNodes();
}

现在您可以表达:任何“节点”都有一些内容(可以是用户或客户端或任何对象);它有一个子列表(或集合),也是“节点”。

答案 1 :(得分:0)

我在这里为您提供高级设计,您必须根据您的要求提供getNext()和getChildren()的实现。 我希望它可以帮助你,让我知道如果你有任何其他想法。

mat(imdilate(mat==2,strel('disk',2)))=2;

注意:它是一种高级设计。使用此设计,如果将来需要,您可以在应用程序中引入更多类型。