03 2017 档案
摘要:* 使用一个数组来实现三个栈: * 这个问题是数组实现一个栈的升级版本, * 一个数组实现两个栈比较的简单,可以从数组的两端到中间,也可以从中间到两端,以至于实现三个四个五个栈都行,关键是要记住栈的开始处,当栈的容量不够时做好调整 * 就单单对这个问题而言,一个数组实现三个栈又有一下两种处理方式:
阅读全文
摘要:栈,是比较基础,应用比较广的一种数据结构,栈和队列都可以看成是比较特殊的一些链表,其最突出的特性就是先进后出。虾米阿尼是一个比较常见的中缀表达式求值的应用,当然中缀式到后缀式的转化也是可以实现的。 中缀式,这个我们不陌生平时大家写的式子就是中缀式的,比如2*(3-1)+(5+6)/9 后缀式,主要考
阅读全文
摘要:双链表的手动实现中考虑三个类的实现: 1、MyLinkedList类本身的实现,包含到两端的链、表的大小以及一些方法。 2、Node节点,它可能是一个私有的内部嵌套类,这个类,嵌套在MyLinkedList的内部,数据域:data,前驱指针prev和后继指针next,以及合适的构造方法 3、Link
阅读全文
摘要:仿照Java集合类库中的ArrayList,自己手动写了一个MyArrayList,内部使用一个数组来维护。具体的adt描述如下 isEmpty() 判断是否为空 size() 获取当前存储的元素个数 clear() 清空当前的所有元素 set(idx, e) 重置指定位置的元素 ensureCap
阅读全文
摘要:初次听说java中的函数对象可能,比较的陌生。可以类比着来理解一下,人们常说java中没有了指针,殊不知,java中的对象引用就是指针,有时候我们说一个对象往往指的就是这个对象的引用,也就是说基本上把对象的引用很对象等同了。比如Integer a = new Integeer(3);我们说定义了一个
阅读全文
摘要:这个问题总的栈和队列,没有自己手写,自己手写太浪费了,于是就用的java中的集合框架list下面的LinkedList 其实LinkedList既可以当做栈用,也可以当做队列来使用. 作为栈的时候,LinkedList<T> stack = new LinkedList<T>().入栈stack.p
阅读全文
摘要:java版数据结构之链栈。 举凡链栈,一般就是一种特殊的双链表而已。 这个栈,完全是自己手写实现,从链栈的节点开始,链栈的节点类型,定义一个具名内部类,直接看完整的代码: 测试了一下,还是能用的。
阅读全文
摘要:堆排序是排序的一种,一般有大根对和小根堆之说,大根对,根节点的值比左右子树的根节点的值要大。建堆我们一般是一个完全二叉树。堆排序一般面向数据量比较大的时候,数据量比较小的时候,不适合使用堆排序,比如有种情况就是topN算法的实现,一般都是借助于一个大根对来实现,扫描海量数据,把海量数据中的把最大的前
阅读全文
摘要:之所以会想到写这么一个shuffle的例子,是因为一个需求:我需要把一个有序数组中的数据随机的打散。java代码如下,
阅读全文

浙公网安备 33010602011771号