二叉搜索树中键值对的意义是什么?

3

在二叉搜索树中,拥有键值对的目的究竟是什么?能否举个例子说明一下?因为在 STL 的 set 容器中,我没有明确指定键值对。

我对二叉搜索树还不太熟悉。

4个回答

2
一个键可以是一个简单的值,用于在树中插入、查找或删除节点。 值可以是节点保存的数据。 例如,键可以是用户名,而值可以是用户信息,如姓名、姓氏、年龄、位置、偏好等。

你能否查询“有多少人年龄在65岁以下,名字以b到x开头?” - user1959272
是的。该键可帮助查找以b开头到x结尾的人。您需要对这些人进行额外的年龄检查。在从b到x遍历时,这可能很容易检查。 - hmatar
那么它与报告的节点数量成线性关系? - user1959272
如果b和x之间有5个人,那么你需要检查5次。 - hmatar

1
BST是为了在treeNode的特定属性上提供快速查询而构建的。
如果我想获取工资高于10万美元的员工。
构建BST,使用薪水作为树节点的键,并将其他信息(如年龄、地址等)放入值中。

0

键的目的是,给定某个节点 S 作为起点,所有在 S 左侧的节点(及其键)都小于 S 的键值,而所有在 S 右侧的节点(及其键)都大于 S 的键值。


是的,但通常您是否希望键与值相同?(例如stl set)。区分它们的好处是什么? - user1959272
@user1959272 为什么要存储重复的数据? - Woot4Moo

0
与任何使用(键,值)对的数据结构相同:您可能希望能够在引用每个值的键时访问值数据。不使用值的哈希所带来的仅是一些额外的灵活性。不确定您所谓的“点”是什么意思......语言提供了不同方式解决问题的工具,如果其中一种方法是在二叉搜索树中使用(键,值)对,为什么不使用呢?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接