在“家谱”示例中推断信息的最佳数据结构

时间:2019-07-11 13:33:23

标签: java hashmap family-tree

我正在尝试确定哪种数据结构最适合程序的下一阶段。

所以我已经编写了一些初始函数(和底层逻辑)。

我首先初始化一个全局哈希图String-> String,其键为名称,值为性别(“ M”或“ F”)。

我创建了2个函数,这些函数接受人员名称(作为字符串)并将其存储在哈希图中。 1个功能存储男性,1个功能存储女性。他们还检查名称是否已经在哈希映射中,如果已经存在相同名称,则返回false。当他们在哈希映射中存储新名称时,它们将返回true。

然后,我又创建了2个函数,再次使用一个名称(作为字符串)并检查性别。男性1个功能,女性1个功能。如果名称存在于哈希图中,并且性别与该名称对应的值相对应,则函数将返回true。否则,它们返回false。

public boolean male(String name) {
    if(genders.containsKey(name)) {
        return false;
    } else {
        genders.put(name, "male");
    }
    return true;
}

public boolean isMale(String name) { 
    if(genders.containsKey(name) && genders.get(name) == "male") {
        return true;
    } else {
        return false;
    }
}

我现在正尝试实现另外3个功能。 1设置一对Strings的子代,父代。然后另一个以字符串形式命名的其他2. 1.返回其父级,另一个也以字符串形式命名的另一个返回其子级。

我的问题是。也可以在哈希图中实现吗?像“ String”->“ String” parent-> child?

这之后还有第三阶段,这两个哈希表将“连接”并且逻辑将推断信息。例如,您可以对相同的子名称使用两次父子设置功能(给他们一个父母)。然后,您可以在其中一个父母中使用性别设置器功能。然后,如果您在另一个父名称上使用性别检查器功能以及其他性别,它将自动返回true(即使您根本没有在该另一个名称上使用性别设置器功能)。

第二个哈希表可以支持这种功能吗?还是其他数据结构更适合?像树还是某种图形?散列表图?

n.b。我不允许对此使用任何继承,因为程序中仅允许使用1个类。

0 个答案:

没有答案