BST上的字典实现

时间:2012-10-18 10:28:59

标签: java dictionary implementation binary-search-tree

在那里,我是java的新手,我需要在二叉搜索树上实现一个字典,但我真的不知道从哪里开始。 我必须在这本词典中存储一些名字和年龄的学生。 因此,在BST中,我将存储年龄,但是我在哪里存储学生的姓名以及如何将姓名与年龄字段相关联。

如果你有类似这样的实现的例子,我不胜感激,不是所有的代码,只是开始,所以我开始吧。如果你没有在java中使用它,那么c ++代码也很好。

2 个答案:

答案 0 :(得分:2)

字典是将键映射到值并允许查询给定键的值的数据结构。二叉搜索树还具有密钥(用于搜索)并且还可以具有其他有效载荷数据(值)。因此,带有效载荷数据的BST实际上已经是字典了。

因此,首先编写一个通常的BST实现(参见维基百科的简单实现,例如http://en.wikipedia.org/wiki/Binary_search_tree)。将有效内容属性添加到节点。添加一个函数lookup(key),它将首先使用键key搜索节点(使用通常的BST查找)并返回该节点的payload属性。瞧,你有你的字典。

答案 1 :(得分:0)

有许多资源可用于在Internet上创建简单的二叉搜索树。字典简单地定义为允许您检索给定键的值的数据结构。二叉搜索树已经这样做了。您真正需要做的是创建一个Student类,然后在Comparable类中实现Student接口。然后,这个compareTo方法会按年龄对学生进行排序(假设年龄是Student类的字段)。

类似于:

public class Student implements Comparable<Student> {

    public Integer age;

    public Integer getAge() {
        return age;
    }

    public int compareTo(Student o) {
        return this.getAge().compareTo(o.getAge);
    }

}