我正在尝试找到一个具有前驱和后继的树的实现。例如,我们所拥有的家谱 - 选定的联系人(根) - 他/她的父母,祖父母等 - 他/她的孩子,孙子等 理想情况下,它看起来如下:
GF1 GM1 GF2 GM2
F M
Root
S D
GS1 GD1 GS2
,其中
GF - 盛大的父亲
GM - Grand Mother
F - 父亲
M - 母亲
S - 儿子
D - 女儿
GS - Grand Son
GD - 大女儿
我找到了几个树实现,但没有一个允许像上面那样绘制层次结构。
任何帮助将不胜感激。
感谢。
答案 0 :(得分:0)
我认为二叉树应该可以为你做好(假设所有节点最多只有两个孩子 - 男性和女性)。
此外,在为树设计抽象Node
时,您可以添加指向左右父母(即母亲和父亲)的指针,以及指向左右儿童的指针。
class Node {
Node mother;
Node father;
Node son;
Node daughter;
}
请注意,在向树中添加Node
时,您不仅应该更新当前节点中为其添加新的后继者/前任者的引用,而且应该添加当前节点的引用作为后继者/前任也是。
这将允许您从选定的(根)节点上下导航。
答案 1 :(得分:0)