嗨,我是java新手,我需要在二叉搜索树上实现一个字典,但我真的不知道从哪里开始。我必须在这本字典中存储一些有名字和年龄的学生。因此,在 BST 中,我将存储年龄,但我在哪里存储学生的姓名以及如何将姓名与年龄字段联系起来。
如果您有这样的实现示例,我将不胜感激,不一定是所有代码,而只是开始,所以我可以开始。如果你在java中没有它,c++代码也很好。
嗨,我是java新手,我需要在二叉搜索树上实现一个字典,但我真的不知道从哪里开始。我必须在这本字典中存储一些有名字和年龄的学生。因此,在 BST 中,我将存储年龄,但我在哪里存储学生的姓名以及如何将姓名与年龄字段联系起来。
如果您有这样的实现示例,我将不胜感激,不一定是所有代码,而只是开始,所以我可以开始。如果你在java中没有它,c++代码也很好。
字典是一种将键映射到值并允许查询给定键的值的数据结构。二叉搜索树还具有键(用于搜索)并且还可以具有进一步的有效负载数据(值)。因此,带有有效负载数据的 BST 实际上已经是一个字典。
因此,首先编写一个常用的 BST 实现(参见 Wikipedia 以获得简单的实现,例如http://en.wikipedia.org/wiki/Binary_search_tree)。向节点添加有效负载属性。添加一个函数lookup(key)
,它将首先使用键搜索节点key
(使用通常的 BST 查找)并返回该节点的有效负载属性。等等,你有你的字典。
在 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);
}
}