
数据结构
金箍一梦何来愁
远方的姑娘再见
展开
-
数据结果时间和空间复杂度 脑图
原创 2020-03-29 13:45:16 · 151 阅读 · 0 评论 -
使用数组来实现队列
package com.atguigu.queue;import java.util.Scanner;public class CircleArrayQueueDemo { public static void main(String[] args) { //测试一把 System.out.println("测试数组模拟环形队列的案例~~~"...原创 2020-02-05 00:30:30 · 348 阅读 · 0 评论 -
稀疏数组
package cn.tk.message;import java.io.*;public class SparseArray { public static void main(String[] args) { int[][] arr;//二维数组 int[][] sparseToArrs;//文件读取的稀疏数组还原二维数组 ...原创 2020-02-01 19:47:26 · 156 阅读 · 0 评论 -
二叉树的遍历
记住一个前序遍历和层级遍历就可以应付工作package com.zl.Datastructure.tree; import java.util.HashMap;import java.util.LinkedList;import java.util.Map;import java.util.Queue;import java.util.Stack; class ...原创 2018-08-07 17:30:10 · 167 阅读 · 0 评论 -
数据结构 红黑树
上一篇博客我们介绍了二叉搜索树,二叉搜索树对于某个节点而言,其左子树的节点关键值都小于该节点关键值,右子树的所有节点关键值都大于该节点关键值。二叉搜索树作为一种数据结构,其查找、插入和删除操作的时间复杂度都为O(logn),底数为2。但是我们说这个时间复杂度是在平衡的二叉搜索树上体现的,也就是如果插入的数据是随机的,则效率很高,但是如果插入的数据是有序的,比如从小到大的顺序【10,20,30,4...原创 2018-05-31 00:02:50 · 239 阅读 · 0 评论 -
数据结构 二叉树
接下来我们将会介绍另外一种数据结构——树。二叉树是树这种数据结构的一员,后面我们还会介绍红黑树,2-3-4树等数据结构。那么为什么要使用树?它有什么优点? 前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二分法查找,但是想要在有序数组中插入一个数据项,就必须先找到插入数据项的位置,然后将所有插入位置后面的数据项全部向后移动一位,来给新数据腾出空间,平均来讲要移动N/2次...原创 2018-05-30 23:55:30 · 194 阅读 · 0 评论 -
数据结构——哈希表
一 概念Hash表也称散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。它基于数组,通过把关键字映射到数组的某个下标来加快查找速度,但是又和数组、链表、树等数据结构不同,在这些数据结构中查找某个关键字,通常要遍历整个数据结构,也就是O(N)的时间级,但是对于哈希表来说,只是O(1)的时间级。 注意,这里有个重要的问题就是如何把关键字转换为...原创 2018-05-30 18:33:05 · 258 阅读 · 0 评论 -
数据结构 队列
队列的顺序存储结构实现public class Queue<E> { private Object[] data=null; private int maxSize; //队列容量 private int front; //队列头,允许删除 private int rear; //队列尾,允许插入 //构造函数 public Qu...原创 2018-05-30 00:23:42 · 207 阅读 · 2 评论 -
数据结构 栈
/** * 基于数组实现的顺序栈 * @param <E> */public class Stack<E> { private Object[] data = null; private int maxSize=0; //栈容量 private int top =-1; //栈顶指针 /** * 构造函数:根...原创 2018-05-30 00:22:28 · 295 阅读 · 0 评论 -
数据结构 栈
/** * 基于数组实现的顺序栈 * @param <E> */public class Stack<E> { private Object[] data = null; private int maxSize=0; //栈容量 private int top =-1; //栈顶指针 /** * 构造函数:根...原创 2018-05-30 00:19:23 · 246 阅读 · 0 评论 -
数据结构——队列
前面一篇博客我们讲解了并不像数组一样完全作为存储数据功能,而是作为构思算法的辅助工具的数据结构——栈,本篇博客我们介绍另外一个这样的工具——队列。栈是后进先出,而队列刚好相反,是先进先出。1、队列的基本概念 队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端...原创 2018-05-29 22:38:24 · 163 阅读 · 0 评论 -
数据结构 递归
https://github.com/yzmaodeng/java-keypointknowledge/tree/master/src/main/java/com/zl/Datastructure/recusion阶乘public static long factorial(int n) throws Exception { if (n < 0) throw new Ex...原创 2018-05-29 14:04:18 · 140 阅读 · 0 评论 -
数据结构 栈
public class MyArrayStack { //存储元素的数组,声明为Object类型能存储任意类型的数据 private Object[] elementData; //指向栈顶的指针 private int top; //栈的总容量 private int size; //默认构造一个容量为10的栈 public ...原创 2018-05-28 14:15:20 · 238 阅读 · 3 评论 -
数据结构 冒泡排序
说的简单一点 就是 一个村子看谁的本事大,村长为了不让老百姓乱跑,就每一个房子跑,一房子为单位,两个两个的比较,没比较一次就记录一下那个房子里面的人本事大,比较一轮得到一个最大的,同理剩下的房子里面用递归的方式来比较。 public class BubbleSort { public static int[] sort(int[] array){ //这里for循环...原创 2018-05-28 10:31:15 · 388 阅读 · 0 评论 -
数据结构 简介
编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通过降低牵引力来获得更快的行驶速度。那么爬坡时使用1档,便可以获得更大的牵引力;下坡时便使用低档限制车的行驶速度。回到编程而言,比如将一个班级的学生名字要临时存储在内存中,你会选择什么数据结...原创 2018-05-28 10:01:37 · 169 阅读 · 0 评论 -
链表
前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造成内存的浪费,过小又不能满足数据量的存储。 本篇博客我们将讲解一种新型的数据结构——链表。我们知道数组是一种通用的数据结构,能用来实现栈、队列等很多数据结构。而链表也是一种使用广泛的通用数据结构...原创 2018-05-27 23:54:03 · 290 阅读 · 0 评论