关于线索二叉树

关于线索二叉树

bobo老师好,在一般的数据结构教材中,在树的这一章一般会讲解“线索二叉树”,个人感觉是难度大,难以实现,而且不知道具体的应用。看这个体系课中,没有线索二叉树相关的讲解。请问老师,关于线索二叉树,有什么学习建议和用途说明吗?谢谢。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

一般的数据结构教材,不会有线索二叉树。


线索二叉树是一个很“专门”的数据结构,其主要作用是更加高速的做非递归遍历(尤其是中序遍历),以及更加高速的寻找节点的前驱或者后继(尤其是中序遍历的前驱或者后继)这样的操作。因为其主要目的是更加苛刻的高性能需求(要考虑递归的时间和空间消耗),所以主要应用于数据库底层的结构(数据量更大,但现代数据库的底层主要是 b 树),或者编译器底层的结构。(编译器对中序遍历需求较高)


我没有见过任何的软件工程相关面试会问到线索二叉树;对于各种机试网站(比如力扣),或者算法竞赛(比如 ACM),我也没见过需要一定使用线索二叉树的问题;对于近乎所有的语言提供的 sdk,甚至是更进一步的语言的拓展包,近乎都不会见到线索二叉树的影子。甚至通常面向研究生或者博士生的高级数据结构教程,都不会出现线索二叉树。比线索二叉树重要且应用更广泛的高级数据结构还有很多。


对于线索二叉树,远远超过了“计算机基础”的范畴,我的建议是,在实际项目或者具体的领域中,遇到这个需求,再做具体学习。其实,这本身也是学习算法与数据结构的核心目的。学习算法和数据结构的目的不是吧这个世界上所有的算法和数据结构都实现出来,而是掌握理解基础的算法和数据结构的思想。将来当你在更加具体的计算机领域遇到各种“奇奇怪怪”的数据结构的时候,可以有能力把它搞明白。


继续加油!:)

  • 阿阳2017 提问者 #1

    感谢bobo老师详细的讲解。主要是学习严蔚敏老师版的《数据结构》,用了不少篇幅介绍线索二叉树,一直不知道其用途。您不仅解答了其应用领域,也对学习方法进行了指导。

    2024-11-15 12:54:31
  • liuyubobobo 回复 提问者 阿阳2017 #2

    除非是考试原因,并不很建议看严蔚敏版的《数据结构》。


    因为我不很了解考研,所以其实我也不很确定考研的内容和严蔚敏版的《数据结构》这本书之间的重合到底有多大。但整体,即便是考研,也不会考线索二叉树的。(不然在我的课程问答区,应该会有很多同学问我线索二叉树的问题。实际上,你是第一个问到这个数据结构的同学:))

    2024-11-16 03:36:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2589    人
  • 解答问题       1090    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师