![](https://img-blog.csdnimg.cn/20190816222446713.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
玩儿转数据结构
1.了解基本数据结构
2.熟悉常用算法
3.从面试的角度学习
4.为面试和今后的职业生涯打好重要基础
代码资源在不同数据结构的第一章。
Evan Wang
这个博客就用来记录自己学到了什么吧。
展开
-
队列:(三)数组队列与循环队列的对比
通过两种对栈的不同实现后,我们通过测试,对比下两者的性能。一、 基础数组代码public class Array<E> { private E[] data; private int size; //构造函数,传入数组的容量capacity构造Array public Array(int capacity) { data...原创 2019-08-25 16:49:34 · 185 阅读 · 0 评论 -
队列:(二)循环队列
上一节实现的数组队列,存在一个问题,就是dequeue();方法的时间复杂度是O(n) 这样会一定程度上影响性能。有没有什么解决方法呢,答案是有。我这一届对队列进行另一种实现,循环队列。一、队列接口public interface Queue<E> { int getSize(); boolean isEmpty(); void enqu...原创 2019-08-25 16:42:01 · 134 阅读 · 0 评论 -
队列:(一)数组队列
队列是一种很常见的数据结构,是先进先出(FIFO)。这里我们基础数组来实现队列。一、 数组基础代码public class Array<E> { private E[] data; private int size; //构造函数,传入数组的容量capacity构造Array public Array(int capacity) {...原创 2019-08-24 22:00:42 · 124 阅读 · 0 评论 -
栈篇:(二)有效的括号
基于栈的应用,实现括号匹配。这里用LeetCode 序号20的题目,有效的括号。使用栈这种数据结构进行解决。一、题目内容:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输...原创 2019-08-24 21:53:57 · 206 阅读 · 0 评论 -
栈篇:(一)栈的基本实现
栈有多种不同的实现,这我们基于数组来实现,使用我们上一章中二次封装的数组。主要有以下方法:int getSize();boolean isEmpty();void push(E e);E pop();E peek();一、 栈接口代码public interface Stack<E> { int getSize(); boolea...原创 2019-08-22 21:48:40 · 101 阅读 · 0 评论 -
数组篇:(七)防止复杂度震荡
注:文字方面,复杂度分析内容这里不做赘述,主要以代码为主。如果要了解复杂度分析相关知识,还请自行搜索资料啊。 : )在我们上一篇的代码中,如果在数组装满后,我们再向数组中添加元素,就会调用resize()方法进行扩容为原数组容量的二倍。但是如果扩容完后,再从数组中删除元素,此时数组内元素个数为容量二分之一,就会调用resize()方法进行缩容为原数组容量的二分之一。如此频繁反复,就会...原创 2019-08-22 21:40:42 · 180 阅读 · 0 评论 -
数组篇:(六)动态数组
之前,我们封装的数组实际上还是一个静态数组。当容量满了之后,就无法向数组中再添加新的元素。这里我们加入 resize()方法,对add()方法和remove()方法进行改良,实现数组的动态扩容和缩容。一、二次封装数组代码public class Array<E> { private E[] data; private int size; ...原创 2019-08-20 23:27:05 · 132 阅读 · 0 评论 -
数组篇:(五)使用泛型
使用泛型:•让我们的数据结构可以放置“任何”数据类型•不可以是基本数据类型,只能是类对象 boolean , byte , char, short, int, long , float, double•每个基本数据类型都有对应的包装类 Boolean , Byte , Char, Short, Int, Long , Float, Double一、二次封装数组代码p...原创 2019-08-19 23:40:41 · 213 阅读 · 0 评论 -
数组篇:(四)添加包含、搜索和删除
继续上一篇,在我们二次封装的数组中,加入包含,搜索和删除的相关方法。一、二次封装数组代码public class Array { private int[] data; private int size; //构造函数,传入数组的容量capacity构造Array public Array(int capacity) { data...原创 2019-08-19 22:01:55 · 160 阅读 · 0 评论 -
数组篇:(三)数组中查询元素和修改元素
继续封装我们的数组,加入查询元素和修改元素的方法。一、二次封装数组代码public class Array { private int[] data; private int size; //构造函数,传入数组的容量capacity构造Array public Array(int capacity) { data = new i...原创 2019-08-16 22:51:02 · 391 阅读 · 0 评论 -
数组篇:(二)向数组中添加元素
继续上一节,继续对我们的数组进行二次封装,加入添加元素等方法。public class Array { private int[] data; private int size; //构造函数,传入数组的容量capacity构造Array public Array(int capacity) { data = new int[capaci...原创 2019-08-16 22:47:47 · 598 阅读 · 0 评论 -
数组篇:(一)二次封装属于我们自己的数组
对于程序员来说,数据结构的重要性不言而喻。下面我们就一起简单的学习下常见的需要掌握的数据结构。废话少说直接上码。我使用的开发工具是:IDEA下面我们手动二次封装一个自己的数组:public class Array { private int[] data; private int size; //构造函数,传入数组的容量capacity构造Ar...原创 2019-08-16 22:42:27 · 176 阅读 · 0 评论 -
数据结构:代码资源整合
从今天起开始系统的学习数据结构,在此记录一下。注:理论上的东西,不做详细介绍,主要以代码示例为主。一、数组篇代码资源整合:链接=>数组篇:资源链接 提取码: oc13...原创 2019-08-19 23:17:14 · 181 阅读 · 0 评论