算法
programs
移动终端软件开发者
展开
-
拓扑排序
关于拓扑排序 待排序的元素是什么? —— 有向图的结点 按怎样的顺序? —— 如果存在边 v→w,则v要排在w的前面 算法 list ← [] 初始化队列,将入度为0的结点加入队列 当队列非空: v ← 出队 list.add(v) w ← 遍历与v相邻的顶点 将w的度数减1 如果w的度数为0,则将w加入队列 如果 list.size() < 顶点总数,则抛出有环异常 ...原创 2015-07-20 22:31:21 · 1745 阅读 · 0 评论 -
优先队列
完全二叉树 同时满足已下条件的二叉树是完全二叉树: * 除最后一层外,每层的结点都有左右两个结点 * 最后一层的结点从左向右,紧密排列,中间没有空隙 例如下图就是一颗完全二叉树 堆 所有父结点都大(小)于子结点的完全二叉树叫做最大(小)堆。上图就是一个最大堆。 堆能做什么 移除最值 吸纳新值 对应接口: public void add(E item); p...原创 2015-07-07 21:33:46 · 1438 阅读 · 0 评论 -
归并排序
Java原创 2015-07-05 16:57:50 · 1551 阅读 · 0 评论 -
键值表
什么是键值表 键值表是键值对集合,类似字典,支持存入键值对,按键查值等操作。 对外接口 public void put(Key key, Value val); public Value get(Key key); public boolean contains(Key key); public Value remove(Key key); public int size(); pub...原创 2015-07-06 22:35:00 · 2293 阅读 · 0 评论