数据结构
lisx
这个作者很懒,什么都没留下…
展开
-
第2章 算法分析
/** * //子序列通杀 * 假设最优子序列是从i开始的,那么从i开始进行运算,求出的最优值一定是最优子序列的值 * @param a * @return */ private static void max(int[] a){ int maxSum = 0; boolean maxfirst = true原创 2014-05-26 20:54:03 · 448 阅读 · 0 评论 -
Data Structures and Algorithm Analysis in Java_IntroductionTest
//拓展 n用i进制表示时数字j出现的次数j private static int forfive2(int n,int i,int j){// //递归 // if(n<i) return n==j ? 1:0;// return forfive2(n/i,i,j) + (n%i==j ? 1:0); // 循环原创 2014-05-23 14:17:53 · 934 阅读 · 0 评论 -
第3章 表、栈和队列
LinkedList的实现数据结构是双向链表。 当直接使用Iterator(而不是通过一个增强的for循环间接使用)时,重要的是要记住一个基本法则:如果对正在被迭代的集合进行结构上的改变(即对该集合使用add、remove或clear方法),那么迭代器就不再合法(并且在其后使用该迭代器时会有ConcurrentModificationException异常被抛出)为避免迭代器准备给出某原创 2014-06-05 17:18:53 · 541 阅读 · 0 评论 -
第4章 树
二叉查找树,其深度的平均值是O(logN)。查找、插入、删除平均时间O(logN)。如果删除的次数不多,通常使用的策略是懒惰删除:当一个元素要被删除时,它仍留在书中,而只是被标记为删除。 AVL树是带有平衡条件的二叉查找树。它保证树的深度须是O(logN)。一棵AVL树是其每个节点的左子树和右子数的高度最多差1的二叉查找树。 伸展树,它保证从空树开始连续M次对树的操作最多花费O原创 2014-06-18 20:18:25 · 454 阅读 · 0 评论