繁体   English   中英

Java树与前任和后继

[英]Java Tree With Predecessor and Successor

我试图找到一个既有前辈又有继任者的Tree的实现。 例如,我们所拥有的家谱-选定的联系人(根)-他/她的父母,祖父母等-他/她的孩子,孙子等。理想情况下,它看起来如下:

GF1  GM1   GF2  GM2  
    F         M  
        Root  
    S         D  
GS1   GD1  GS2   

GF-大父亲
GM-大母亲
F-父亲
M-母亲
S-儿子
D-女儿
GS-大儿子
GD-大女儿

我发现了几种树实现,但是它们都不允许绘制上述层次结构。

任何帮助将不胜感激。

谢谢。

我想,一棵二叉树对您来说应该很好(假设所有节点最多有两个孩子-男性和女性)。

同样,在为树设计抽象Node时,除了指向左侧和右侧子代的指针外,还可以添加指向左侧和右侧父代(即母亲和父亲)的指针。

class Node {
    Node mother;
    Node father;
    Node son;
    Node daughter;
}

请注意,在将Node添加到树中时,不仅应在要为其添加新的后继者/前任者的当前节点中更新引用,而且还应添加当前节点的后继者/前任者的引用。

这将允许您从选定的(根)节点上导航。

您需要一个自定义小部件,在任何情况下,它都只是一个Table

如果您知道Tree只是一个简单的Table实现,则可以创建自定义Table并将其装饰为一棵树

代表一棵树的表

所有子项/父项均根据深度进行缩进,因此父项的深度为1,parent.parent的深度为2,子项也是如此。

只要一行中有条目,就可以(应该)绘制树符号,当列等于节点深度时,它是一个+号,或者|时,它是| 当深度比行深时。

不幸的是,我不知道执行任何操作,因此您必须自己做。 如果您在实现表和/或表模型时遇到问题,请随时提出另一个问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM