![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构与算法
Tomcatist
这个作者很懒,什么都没留下…
展开
-
递归(Recursion)
递归的概念 简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 递归调用机制 回顾一下递归调用机制 打印问题 阶乘问题 使用图解方式说明了递归的调用机制 递归调用规则: 当程序执行到一个方法时,就会开辟一个独立的空间(栈) 每个空间的数据(局部变量),是独立的 代码演示: package com.atguigu.r...原创 2020-03-06 21:10:18 · 127 阅读 · 0 评论 -
栈
栈 栈的一个实际需求 请输入一个表达式 计算式:[722-5+1-5+3-3] 点击计算【如下图】 请问: 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5, 但是计算机怎么理解这个算式的(对计算机而言,它接收到的就是一个字符串),我们讨论的是这个问题。-> 栈 栈的介绍 栈的英文为**(stack)** 栈是一个先入后出**...原创 2020-02-28 22:20:48 · 136 阅读 · 0 评论 -
链表(Linked List)
链表(Linked List) 链表(Linked List)介绍 链表是有序的列表,但是它在内存中是存储如下 小结上图: 链表是以节点的方式来存储,是链式存储 每个节点包含 data 域, next 域:指向下一个节点. 如图:发现链表的各个节点不一定是连续存储. 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定 单链表(带头结点) 逻辑结构示意图如下 单...原创 2020-02-23 23:31:41 · 258 阅读 · 0 评论 -
队列(queue)
队列 队列的一个使用场景 银行排队的案例: 队列介绍 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 示意图:(使用数组模拟队列示意图) 数组模拟队列 思路 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队 列的最大容量。 因为队列的输出、输入是分别从前后端来...原创 2020-02-22 20:59:11 · 408 阅读 · 0 评论 -
稀疏数组(sparsearray)
稀疏数组(sparsearray) 先看一个实际的需求 编写的五子棋程序中,有存盘退出和续上盘的功能。 分析问题: 因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据.->稀疏数组。 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及...原创 2020-02-22 20:57:42 · 105 阅读 · 0 评论 -
线性和非线性结构
数据结构和算法概述 数据结构和算法的重要性 算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算 一般来讲程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这 些计算框架和缓存技术, 它的核心功能是哪个部分呢? 拿实际工作经历来说, 在 Unix 下开发服务器程序,功能是要支持上千万人同时在线, 在上线前,做内测,一切 ...原创 2020-02-22 20:54:23 · 180 阅读 · 0 评论