流网络(Flow Networks)指的是一个有向图 G = (V, E),其中每条边 (u, v) ∈ E 均有一非负容量 c(u, v) ≥ 0。如果 (u, v) ∉ E 则可以规定 c(u, …
Dijkstra 单源最短路径算法
Dijkstra 算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-Source Shortest Path)的算法,由计算机科学家 Edsger Dijkstra 于 1956 年构思并于 1959 …
广度优先搜索
广度优先搜索(BFS:Breadth-First Search)是一种图搜索策略,其将搜索限制到 2 种操作: (a) 访问图中的一个节点; (b) 访问该节点的邻居节点; 广度优先搜索(BFS)由 Edward F. …
深度优先搜索
深度优先搜索(DFS:Depth-First Search)是一种图搜索策略,其将搜索限制到 2 种操作: (a) 访问图中的一个节点; (b) 访问该节点的子节点; 在深度优先搜索中,对于最新发现的顶点,如果它还有以此…
设计模式之美:Object Pool(对象池)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):实现 DatabaseConnectionPool 类。 实现方式(二):使用对象构造方法和预分配方式实现 ObjectPool 类。 意图 运用对…
设计模式之美:Template Method(模板方法)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Template Method 模式结构样式代码。 意图 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 Template Method 使…
设计模式之美:Manager(管理器)
索引 意图 结构 参与者 适用性 效果 实现 实现方式(一):Manager 模式的示例实现。 意图 将对一个类的所有对象的管理封装到一个单独的管理器类中。 这使得管理职责的变化独立于类本身,并且管理器还可以为不同的类进…
设计模式之美:Flyweight(享元)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):使用 FlyweightFactory 管理 Flyweight 对象。 意图 运用共享技术有效地支持大量细粒度的对象。 Use sharing t…
设计模式之美:Chain of Responsibility(职责链)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):实现后继者链。 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这些对象连成一条链,并沿着这条链传递该请求,直到有…
设计模式之美
目录 设计模式分类 设计模式之间的关系 设计模式所支持的设计的可变方面 设计模式怎样解决设计问题 寻找合适的对象 决定对象的粒度 指定对象接口 描述对象的实现 运用复用机制 关联运行时和编译时的结构 设计应支持变化 源代…
设计模式之美:Private Class Data(私有类数据)
索引 意图 结构 参与者 适用性 效果 实现 实现方式(一):实现对初始化数据的封装。 意图 封装类的初始化数据,控制对类的属性的更改,并保持类数据与使用数据的方法间的隔离。 Encapsulate class data…
设计模式之美:Factory Method(工厂方法)
索引 别名 意图 结构 参与者 适用性 缺点 效果 相关模式 命名约定 实现 实现方式(一):Creator 类是一个抽象类并且不提供它所声明的工厂方法的实现。 实现方式(二):Creator 类是一个具体类而且为工厂方…