请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

搜索二叉树结构?

老师定义的BST结构中,对于数值的定义,为啥同时有key和value?一般情况下,我看到的其他人更多的节点情况是只是定义了vaule。

正在回答 回答被采纳积分+3

插入代码

1回答

liuyubobobo 2021-06-29 17:29:07

首先,不是“只定义了vaule”。如果二叉树不存 key 和 value 的话,存的那一个值是 key。


其次,一个数据结构,存储 key-value 数值对,即键值数据对,叫映射;不存数据对,只存一个数据,叫集合。


二叉树既可以用于实现映射,也可以用于实现集合。这是二叉树的两种不同应用。


放在标准库中,C++ 语言里,set 就是以二叉树为基础(实际上是红黑树)实现的集合;map 就是以二叉树为基础(实际上是红黑树)实现的映射;

Java 语言里,TreeSet 就是以二叉树为基础(实际上是红黑树)实现的集合;TreeMap 就是以二叉树为基础(实际上是红黑树)实现的映射;


在具体实现上,集合的实现可以看做是在映射实现基础上添加一层。因为映射存储的是键值数据对,对于集合来说,不过是没有"值",所有的键对应的值填“空”即可。(当然,你可以可以完全把 node 结构的 value 扔掉,重新实现一遍二叉树。)


对于这种数据结构的更具体的说明,在我的体系课程中介绍的更清晰。如果有兴趣可以参考:https://class.imooc.com/sale/datastructure


继续加油!:)

1 回复 有任何疑惑可以回复我~
  • 提问者 挣钱吃饭 #1
    懂了。
    回复 有任何疑惑可以回复我~ 2021-06-29 19:05:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信