
数据结构
韵然CP
用最简单的语言注释程序
展开
-
不同的数据如何选取对应的数据结构存储
这两天学完STL之后发现知识都在脑子里,但是到了做题有时候就是不知道该选择什么样的数据结构了- -,结合自己的解题思路和liuchuo在gitHub上的题解来整理的- -,可能不会分类,只是给自己做一个记录把。liuchuo在gitHub题解:https://github.com/liuchuo/PAT还有我们学校acm网站的题:https://acm.sdut.edu.cn/online...原创 2020-01-11 20:44:48 · 697 阅读 · 0 评论 -
数据结构栈的操作
栈是一种后进先出的数据结构(Last In First Out)Undo操作(撤销)系统栈:存储我们调用的程序我在这里写的Stack是用数组实现的package www.zxx;public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e); E pop(); ...原创 2019-05-24 11:20:15 · 223 阅读 · 0 评论 -
数据结构数组的简单时间复杂度分析
O 描述的是算法的运行时间和输入数据之间的关系(简单)但实际的时间是T=c1*n+c2c1是for存储运算一共需要的时间,这个时间由机器码指令、cpu有关,我们把这样的线性关系抽象为O(n)第四个显示了我们的时间复杂度计算时低阶的会被忽略实际上我们的O是渐进时间复杂度,描述的是n趋近于无穷大的情况我们的数组中的操作分析:修改操作时只需要访问index位...原创 2019-05-23 10:41:01 · 1540 阅读 · 0 评论 -
数据结构动态数组
我们对数组进行改造的原理如下:重新建立一个capacity更大的数组,通过for循环让原来数组的数据复制到新的数组里,再让我们原来的数组指向newdate这样我们的date和newdate指向的同一个空间,我们会把这样一个过程封装在函数里,newdate会在执行完后被回收package www.zxx;public class Array<E> { private ...原创 2019-05-23 09:21:21 · 325 阅读 · 0 评论 -
数据结构数组的泛型改造
在我们上一篇数组中我们数组只能放数值型数据,我们要对他进行改造,使之能放别的数据类型的值,但是我们这里的数据类型不可以是基本数据类型,必须是类对象。boolean,byte,char,short,int long float,double是我们的八种基本数据类型但是我们的Java为我们提供了包装类Boolean,Byte,Char,Short,Int,Long,Float,Double...原创 2019-05-22 11:52:10 · 146 阅读 · 0 评论 -
数据结构数组
数组就是把数据码成一排进行存放数组有可遍历、可迭代的特性,可以用foreach来实现数组的最大优点是能快速查询我们的索引有两种情况:有语意、无语意我们在插入中间元素的时候把插入位置之后的数字往后移一位的时候我们插入位置的元素实际上还是存着原来的数字,我们往后移的不是空间而是数字的副本。package www.zxx;public class Array { priva...原创 2019-05-21 22:20:43 · 643 阅读 · 0 评论 -
数据结构数组队列和循环队列测试
为了看一下我们两个运行的时间我们写了一个测试样例具体的ArrayQueue,LoopQueue的代码参考前面两个代码package Queue;import java.util.Random;public class Test { private static double testQueue(Queue<Integer> queue, int opCount) {...原创 2019-05-25 09:36:24 · 305 阅读 · 0 评论 -
数据结构循环队列
为了解决我们数组队列中dequeue时间复杂度为O(n)的问题,我们提出了循环队列,循环队列保证了我们在移除元素时不需要把所有的元素都移一位package Queue;public class LoopQueue<E> implements Queue<E> { private E[] data; private int front , tail; p...原创 2019-05-24 22:27:37 · 465 阅读 · 0 评论 -
数据结构数组队列
栈的特点是先进先出,只能在队尾添加元素,只能在队头删除元素我们实现的接口是package Queue;public interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E e); E dequeue(); E getFront();}package Queu...原创 2019-05-24 21:23:36 · 140 阅读 · 0 评论 -
数据结构栈的应用之括号匹配
import java.util.Stack;public class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { ...原创 2019-05-24 16:55:09 · 368 阅读 · 0 评论