首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

原创 | 好端端的数据结构,为什么它SB树呢?

大家好,今天给大家介绍一个很厉害的数据结构,它的名字就很厉害,SB树,业内大佬往往叫做傻叉树。这个真不是我框你们,而是它的英文缩写就叫SBT。...SBT其实是英文Size balanced tree的缩写,翻译过来可以理解成节点平衡树,这是大牛陈启峰在高中参加算法竞赛时期发明的数据结构。...当我们旋转完了之后,我们需要去更新它父节点中储存的孩子节点的地址,这样的话,我们就不只是局部变量之间互相修改了,就真正落实到了数据结构上了。...最后我们思考一个问题,我们在什么情况下需要maintain操作呢,也就是什么情况下会破坏树的平衡性呢?其实很简单,就是当树中的元素数量发生改变的时候。无论是增多或者是减少都有可能破坏树的平衡。...论文的最后还附上了SBT和其他常用平衡树数据结构的比较,我们可以看出SBT无论是运行效率还是质量都是其中佼佼者。 ? 最后,我们聊一聊SBT的实现。

1.2K40

翻译翻译,什么接口!

什么是接口 我们知道抽象类里面可以有普通方法也可以有抽象方法,子类继承抽象类必须要实现父类的抽象方法。 而接口是一种特殊的抽象类,特殊在哪里?特殊在它比较头铁,只出售抽象方法。...接口即便是一种特殊的抽象类那它也是抽象类啊,为什么没有构造方法? 前面我在讲抽象类的时候说过,抽象类的构造方法是为了创建子类对象的时候初始化属性用的。...你可以把接口的实现理解成继承,但是实现接口不是继承父类,只有继承才有子类,而实现接口方法的接口实现类,所以创建接口实现类不需要用到接口的构造方法。 实现接口主要是实现接口声明的方法,核心是什么?...这些都是关于接口的例子,从上面你可以看出接口有什么好处?可扩展性。 用专业的话来说面向接口编程可以降低程序的耦合度、提高程序的可扩展性。 方法的调用者只用面向接口,调用接口的方法。

2.5K20

Java什么面向对象

参考链接: java 面对对象概念 什么是面向对象呢?这个问题真的是老生常谈,面试的时候经常问。到底什么是面向对象。。。...,什么都是对象什么的。...一下子我的世界就崩溃了,这都什么啊,最后的最后竟然给我看的是这个。我瞬间懵住了,三观被毁,只能思考重建了。         没错就是这样的。...即使是不知道对象里面的源码,知道这个方法是做什么的就行。     ...虽然java提供了很好的垃圾回收机制,但是就空间复杂度而言,还是要控制的,知道每个变量什么时候活的状态不能被回收,什么时候死的状态可以被回收,对于每一个开发都很重要,要在程序到达一个阶段,一个结束去思考一下

1.2K10
领券