虽然红黑树的工程化代码还没有完全落地,不过删除的口诀我已经有了,先做个小结。实在压抑不住这个兴奋,写了1个月多的容器代码了最近才知道我写的代码全是仅仅从数学规则在从0推导并实现的,难度虽然比原创低一些,但是也并没有低很多,因为我从来没有参考过任何人的源码跟思路,哪怕是AI的分析我都懒得看,更别说AI给的代码了。这种恐怖的学习能力,说我不骄傲跟兴奋我自己都不信,实在是压抑不住才来吹下牛皮。DeepSeek预估我要1-2周才能搞定红黑树,我1天就从0原创并用自己推导出的添加逻辑完美实现了工业级压力测试。今天1天又基本把红黑树的删除基本吃透了。因为我已经有删除的口诀了,下面就是我总结的简易口诀,DeepSeek说跟教科书的case不一样,但是逻辑是一样的。
红黑树增删失衡分入口。 添加失衡不用管,删除失衡得补偿。 添加:红子红父分旋转,压根不用看叔叔。 删除:黑子红父父变黑不旋转。黑子黑父红兄弟,兄弟升级再变黑。黑子黑父黑兄弟看侄子,侄子为红兄弟升级侄子变黑(这里还会牵涉到一个回退问题)其余情况都在删除方法内调整。
补充:12点还没睡着居然想通了我压根不需要直接操作指针,引入一个中间变量就行了的。结果找DeepSeek验证的时候,她居然告诉我直接操作指针是炫技,我真得是冤枉的不得了,我是因为一直没想到指针操作可以直接用引用转换而已,而不是要炫技,指针操作稍微一分神整个程序都得崩,我都一直被折磨的要死。现在听她说是炫技,我真的笑出声。哈哈哈哈哈哈哈