为什么在二叉搜索树中是键而不是值?
Why keys instead of just values in binary search trees?
为什么对 BST 的操作(搜索、删除、获取、最小值、最大值、下限、上限、排名等)使用键而不是值?难道我们不能存储 Comparable
个值并对它们进行操作吗?在 BST 中拥有密钥有什么好处?
您完全可以构建只使用值而不使用键的 BST。一般来说,在谈论数据结构时,我们倾向于使用独立于任何特定编程语言的术语。例如,C++ 没有 Comparable
接口,在 C 中对类型进行比较的方式看起来与在 Java.
中完全不同
"keys" 和 "values" 的想法是在更高层次上讨论树存储一组已排序的事物(键)的想法,并且每个键都有一个关联价值。您实际实现的方式可能是拥有一个存储键和值的单个 Comparable
对象,或者只存储一个没有值的键。不过,从 Theoryland 的角度来看,能够分别讨论这些概念是件好事,这样我们就可以在高层次上推断数据结构是如何工作的,而不必过多担心存储的各个事物背后的实现细节。
为什么对 BST 的操作(搜索、删除、获取、最小值、最大值、下限、上限、排名等)使用键而不是值?难道我们不能存储 Comparable
个值并对它们进行操作吗?在 BST 中拥有密钥有什么好处?
您完全可以构建只使用值而不使用键的 BST。一般来说,在谈论数据结构时,我们倾向于使用独立于任何特定编程语言的术语。例如,C++ 没有 Comparable
接口,在 C 中对类型进行比较的方式看起来与在 Java.
"keys" 和 "values" 的想法是在更高层次上讨论树存储一组已排序的事物(键)的想法,并且每个键都有一个关联价值。您实际实现的方式可能是拥有一个存储键和值的单个 Comparable
对象,或者只存储一个没有值的键。不过,从 Theoryland 的角度来看,能够分别讨论这些概念是件好事,这样我们就可以在高层次上推断数据结构是如何工作的,而不必过多担心存储的各个事物背后的实现细节。