为什么二分搜索树的Node节点中要用key?我记得上数据结构课时Node节点里只有value和两个孩子。

来源:5-2 二分搜索树基础 (Binary Search Tree)

LittleRobin_

2018-03-13

写回答

1回答

liuyubobobo

2018-03-13

你说的情况相当于只有Key:)


如果节点中存储Key-Value的数据对,BST可以作为查找表使用,根据Key查找Value,比如根据学生名称查询成绩;根据ID查找进程,等等,在课程后续,会具体使用二分搜索树做词频统计,你会看到Key是单词,Value是词频;


如果节点中只有Key,此时,BST可以当做集合来使用。


对应C++的STL,存放Key-Value的二分搜索树,相当于map类;只存放Key的二分搜索树,相当于set类;

对应java的collections,存放Key-Value的二分搜索树,相当于TreeMap类;只存放Key的二分搜索树,相当于TreeSet类;


更多这些类在算法设计中的应用,可以参考我的课程《玩儿转算法面试》:https://coding.imooc.com/class/82.html

1
1
LittleRobin_
明白了,谢谢老师!
2018-03-13
共1条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11211 学习 · 1617 问题

查看课程