二叉搜索树
递归查找:
1 | tree_search(root, k) |
递归查找:
1 | tree_search(root, k) |
旋转:
1 | left_rotate(T, root) |
插入:
定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
我们先来了解一下报纸和杂志的订阅是怎么回事:
在观察者模式中,出版者报社 = 主题(subject),而我们订阅者 = 观察者(observer)。
(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树(除了最底层,该树是完全满的,而且是从左到右填充)。
表示堆的数组 A 包括两个属性:
对白很有趣,业务情景营造地很有氛围,如果还不会设计模式的话是值得一读的。
本笔记当然不会有那些有趣的图片和氛围,内容也会尽量浓缩。
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
假设让你买一支股票,并且你已经知道未来 17 天的走势,要求最大化收益。
什么时候收益最大?当然是最低价买进,最高价卖出。如果这种策略有效的话,那么确定最大化收益的方法就是: