数据结构
文章平均质量分 76
年少峰
这个作者很懒,什么都没留下…
展开
-
Java中栈的实现
Stack是java集合类中较为常见的一种数据类型,继承了Vector类,是一种先入后出的对象堆栈。它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。顺带研究了Jdk源码(JDk1.6)empty: /**原创 2015-06-05 09:43:56 · 1828 阅读 · 0 评论 -
递归法求全排列
最近有碰到求全排列的问题,捯饬了几天,终于理解了其中的道理。 题目大意:求几个不同数字的全排序,如1,2,3的全排序就是123,132,213,231,312,321。 代码付下: import java.io.*; import java.util.Arrays; import java.util.Scanner; public class Main { public static原创 2015-06-29 12:30:56 · 778 阅读 · 0 评论 -
遍历序列恢复二叉树
最近参加的实习生面试经常遇到恢复二叉树的问题,把我的方法总结记录下来。 由二叉树的遍历知道,任何一个二叉树他的前序,中序,后序遍历都是唯一的,反过来,若已知节点的前序和中序,同样也可以确定这颗二叉树。 举个例子,已知一颗二叉树前序和中序遍历分别为: A,,B,C,D,E,F,G,H,I B,C,A,E,D,G,H,F,I 分析如下: 由前序遍历知,A为数的根节点,其次。根据中序遍历原创 2015-07-02 15:01:54 · 1954 阅读 · 2 评论 -
HashMap详解
最近一段时间做题经常遇到HashMap,一开始只是知道他是用来存放键值映射的集合类,也便拿来就用了。随着了解的深入,也接触了他的源码,也了解了他的底层结构,觉得对他的理解也深刻了,在此,总和各类资源,谈下自己的理解。 HashMap是基于hash表的Map接口的实现,继承于AbstractMap类,可以提供所有的可选映射操作,允许null键和null值。JDK中有提到,此类不保证映射的顺序,特别原创 2015-06-10 15:07:56 · 477 阅读 · 0 评论 -
HashSet剖析
昨天分析了下HashMap的原理,今天看到了HashSet,觉得和HashMap关系挺大,就把自己的理解记录下来。 HashSet实现了Set接口,set和数学中的set集合一样,不能包含重复元素,对null值也一样,即最多只能有一个null值。HashSet受hash表支持,实际上是由HashMap实现的,看他的构造方法: public HashSet() { map =原创 2015-06-11 15:51:52 · 422 阅读 · 0 评论 -
二叉排序树
二叉树的插入: 需要认识到,二叉排序树插入的节点一定是作为叶子节点添加进去的; //二叉排序树的原创 2015-07-05 12:30:47 · 675 阅读 · 1 评论 -
哈夫曼编码树(最优编码树)
哈夫曼编码属于最优编码,可以构造编码长度最短的编码方案。哈夫曼编码和各个字符出现的概率有关。假设要传送一组字符串为ABACCDA,其中A出现3次,B出现1次,C出现2次,D出现1次,根据哈夫曼编码,编码结果为A:0,B:111,C:10,D:110;其过程如下图 代码如下: import java.util.ArrayList; import java.util.List; impor原创 2015-07-03 14:17:06 · 4251 阅读 · 1 评论 -
动态规划-0-1背包问题
简述问题:给定n中物品和1个背包,物品i的重量wi,价值为vi,背包容量为C,问如何选择背入背包,使得包内总价值最大。此问题通过数学表达为:求 可以得到递归关系,(动态规划中,最重要的就是得到递归关系) 算法实现:public static void knapsack(int []v,int []w,int c,int [][]m) { int n = v.length();原创 2015-08-17 20:33:52 · 455 阅读 · 0 评论 -
排序小节
直接插入排序: public static void InsertSort(int []R)//排序数存在R数组中,R[1],R[2]..... { for(int i=2; i<R.length(); i++) { if(R[i]<R[i-1]) { R[0] = R[i]; for(int j=i-1; R[j]>R[0]; j--) R[j+1]=R[j原创 2015-09-04 16:53:13 · 455 阅读 · 0 评论