数据结构算法
半岛铁盒里的猫
一个热爱足球和音乐,带有一定程度文艺气息的主流程序员。
展开
-
java实现栈
今天用java的集合实现一个栈的功能,作为熟悉栈数据结构的学习也是不错的,代码如下:/** * 以ArrayList为基本结构实现栈 * @author Administrator * * @param */public class StackUtils { ArrayList dataList; int maxSize; //栈顶指针 -1:空栈 int to原创 2016-04-15 11:59:23 · 645 阅读 · 0 评论 -
java实现双向链表
双向链表是一个基本的数据结构,在java中LinkedList已经实现了这种结构,不过作为开发者,也要拥有自己显示这种结构的能力。话不多说,上代码: 首先是链表的节点类:/** * 链表节点 * @author Administrator * * @param */public class ChainNode { private T data; //对象编号 priv原创 2016-04-15 12:22:46 · 736 阅读 · 0 评论 -
模仿源码自定义HashMap
HashMap的实现原理简单来说是通过数组加链表实现的,结合数组查找和链表插入删除效率高,使得HashMap在数据处理方面高效。链表元素是键值对数据,数组元素为链表(源码中为链表的第一个键值对元素),同一个链表的元素是键值哈希值对数组长度取余结果相同的键值对,而它们的键值哈希码对数组长度取余结果恰好作为数组的下标,查找更为方便。详细的实现可参考这篇文章:http://blog.csdn.n原创 2016-05-10 21:07:34 · 1042 阅读 · 0 评论 -
模仿源码自定义ArrayList
最近看了下ArrayList的源码,抽空根据ArrayList的底层结构写了一个功能简单无泛型的自定义ArrayLsit,帮助自己更好理解ArrayList:,其实现的底层数据结构为数Object组,代码如下: /** * 自己实现一个ArrayList * */public class MyArrayList { private Object[] eleme原创 2016-05-09 13:37:12 · 1382 阅读 · 0 评论 -
用Java实现求一个数组中的出现次数最多的元素的个数
前些天做笔试题的时候,遇到这一道题:用Java实现求一个数组中的出现次数最多的元素的个数。但是时间比较紧,我想出了先排序,然后遍历一遍,相邻元素相等则累计,不同则重新累计,遍历完就可以得到相同元素出现最多的元素。自认为还可以,不过面试官笑着对我说:“加入数组的元素不能排序呢?”。哦,我把数组默认当做int数组了,假如数组是String类型的或者是其他的类型,就不能使用我这种方式了。其实很容易想到一种原创 2017-04-09 12:17:38 · 8722 阅读 · 1 评论