簡體   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