摘要:
符号表 符号表是键值对的集合,支持给定键查找值的操作,有很多应用: API put() 和 get() 是最基础的两个操作,为了保证代码的一致性,简洁性和实用性,先说下具体实现中的几个设计选择。 泛型 我们在考虑方法时不指定在处理的键和值的类型,而是使用泛型。 重复的键 每个键只对应一个值(表里没有 阅读全文
摘要:
编程作业四 作业链接: "8 Puzzle" & "Checklist" 我的代码: "Board.java" & "Solver.java" 问题简介 借助优先队列,实现解决八数码(8puzzle)问题的 A 算法。 八数码问题就是下面这样,移动方块重排数字,最后使其有序,希望找到最少的移动次数。 阅读全文
摘要:
优先队列 集合性质的数据类型离不开插入删除这两操作,主要区别就在于删除的时候删哪个,像栈删最晚插入的,队列删最早插入的,随机队列就随便删,而优先队列删除当前集合里最大(或最小)的元素。优先队列有很多应用,举几个见过的像:数据压缩的哈夫曼编码、图搜索中的 Dijkstra 算法和 Prim 算法、人工 阅读全文