伸展树splay单旋PK双旋
为什么要有双旋转呢?遇到左孩子就右转,右孩子就左转不行么?
试想一下如果当前是一条链的话,在查询完最深的节点后,只用N个单旋把节点单旋上去的话,splay操作后的树仍然是一条链,如图1-1至图1-5:
但若是用双旋的话情况就不同了,如图2-1至2-5:
为什么要有双旋转呢?遇到左孩子就右转,右孩子就左转不行么?
试想一下如果当前是一条链的话,在查询完最深的节点后,只用N个单旋把节点单旋上去的话,splay操作后的树仍然是一条链,如图1-1至图1-5:
但若是用双旋的话情况就不同了,如图2-1至2-5:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步