![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构和算法学习
文章平均质量分 65
开朗的大蒜
这个作者很懒,什么都没留下…
展开
-
后缀表达式(逆波兰表达式)的求解 及 前缀表达式、中缀表达式、后缀表达式介绍- 栈-Java数据结构和算法
前缀、中缀、后缀表达式(逆波兰表达式)文章目录前言一、前缀、中缀、后缀表达式介绍二、后缀表达式求解1.实现目标2.思路分析2.1 将数据和运算符放入ArrayList2.2 完成后缀表达式的计算三、中缀表达式转后缀表达式1. 思路分析2. 代码实现:2.1 将中缀表达式转为对应的List2.2 中缀转后缀的代码实现:总结完整代码:前言生活中最常见的就是中缀表达式了吧,比如(3 + 4) * 5 - 6这种形式,但是对于计算机来说,前缀和后缀表达式更适合运算。详细介绍如下:一、前缀、中缀、后缀表原创 2021-03-09 14:49:12 · 598 阅读 · 0 评论 -
栈的数组实现 及 表达式求解-Java数据结构和算法
栈(Stack) 先进后出的有序列表:文章目录前言一、栈的介绍1.简介:2.应用场景:二、栈的思路分析(数组)及代码实现1. 栈的类的代码实现:2.栈满的判断:3.栈空的判断:4.入栈:5.出栈:6.栈的遍历:三、用栈实现表达式求解1.思路分析:2.设置并获取运算符优先级的方法:3.判断字符是否是运算符:4.进行计算的方法:对于表达式的处理及计算:总结完整代码如下:前言 说起栈,我们容易想到可以用其来进行表达式的求解;相比较于队原创 2021-03-09 14:04:12 · 452 阅读 · 0 评论 -
单向环形链表 约瑟夫环-Java数据结构和算法
单向环形链表的实现文章目录一、约瑟夫环介绍二、解决约瑟夫环思路二、代码实现1.创建单向环形链表1.1 环形链表创建思路:1.2环形链表的遍历:1.3 添加节点:2.解决约瑟夫环总结完整测试代码一、约瑟夫环介绍 设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号原创 2021-03-09 13:09:48 · 423 阅读 · 0 评论 -
双向链表(动图讲解)-Java数据结构和算法
单向链表基本操作 图解文章目录前言一、双向链表的介绍:二、相关操作1. 新建双向链表的类2.删除数据(变化较大,有坑????)3. 中间添加数据4.尾部添加数据(稍微变化)5.修改数据(思路不变)6.双向链表的遍历(无变化)总结前言 对于单向链表来说,查找的方向只能单向的,所以进行删除或插入,我们需要找到目标的前一个结点(无法实现向后查找的弊端)。 单向链表原创 2021-03-08 15:34:01 · 508 阅读 · 0 评论 -
逆序打印单链表-Java数据结构和算法
面试题专栏(感觉动画越来越好做了)文章目录一、问题描述:二、解决方案1. 先反转,再遍历(破坏了结构)2. 利用“栈”逆序打印(推荐)一、问题描述: 百度面试题:逆序打印单链表二、解决方案1. 先反转,再遍历(破坏了结构)逆序打印单链表先将单链表反转,然后再遍历即可(不推荐)代码如下://逆转单链表:public static void reverseList(HeroNode head){ if(he原创 2021-03-08 12:35:35 · 474 阅读 · 0 评论 -
单链表的反转(逆置)-Java数据结构和算法
面试题专栏(动画做起来好复杂)文章目录一、问题描述:二、解决方案1. 遍历各项后在头部插入2. 双指针一、问题描述: 腾讯面试题:单链表的反转(还是用原来的节点,实现单链表的反转操作) 为了方便理解双指针下面是我做的动画,大家可以看一下二、解决方案1. 遍历各项后在头部插入1. 先定义一个节点newHead = new HeroNode();原创 2021-03-07 23:49:09 · 489 阅读 · 0 评论 -
查找单链表中的倒数第k个节点-Java数据结构和算法
面试题专栏文章目录一、问题描述:二、解决方案1. 双遍历2. 双指针一、问题描述: 新浪面试题:查找单链表中倒数第k个节点,输出节点信息即可。二、解决方案1. 双遍历1. 编写一个方法, 接收head节点,同时接收一个index2. index表示 倒数第index个节点;3. 先把链表从头到尾遍历,得到链表的总长度getLength();4. 得到size后,从链表的第一个开始遍历(size - index)次原创 2021-03-07 19:06:11 · 515 阅读 · 2 评论 -
单链表相关(附面试题) -Java数据结构和算法
下面是关于开发中常用的数据结构:链表 基本操作的介绍:文章目录前言一、链表介绍二、单链表的相关操作1.单链表的创建1.1 不考虑排名,直接添加英雄节点:1.2 按照排名(编号),顺序添加英雄节点2.遍历单链表3.根据编号修改节点信息4.删除节点总结完整测试代码前言 链表和数组的区别在哪呢?大家知道,数组是连续的内存空间;而链表是按照节点的方式存放数据的,节点不一定是连续的。下面是对其详细介绍:一、原创 2021-03-07 17:53:47 · 310 阅读 · 2 评论 -
队列、环形队列-Java数据结构和算法
Java队列的数组实现文章目录前言一、队列介绍二、数组模拟队列1.编写ArrayQueue类2.判断队列是否满3.判断队列是否空4.入队列5.出队列总结前言 生活中很多情况都是先来后到, 最直接的就是银行的业务了吧, 先来的先处理, 队列可以看成是顺序的结构, 我们排队来一个新人是排在这一队的尾部, 每次处理头部的一个人, 队列可以用数组 和链表来实现提示:以下是本篇文章正文内容,下面案例可供参考一、队列介绍 原创 2021-03-07 01:04:44 · 456 阅读 · 2 评论 -
稀疏数组-Java数据结构和算法
很基础的知识, 但是越基础越应该重视文章目录前言一、稀疏数组是什么?二、转换思路(二维数组↔稀疏数组)总结前言 当我们进行下五子棋的时候你有没有想过, 棋盘是怎么生成的? 下棋的过程是怎么实现的? 还有我们在退出游戏的时候, 可以选择保存, 数据又是怎么保存的呢? 又怎么恢复棋盘呢? 显然对于一个棋盘来说, 我们可以用一个二维数组来存储数据(0代表没有棋子,原创 2021-03-06 22:35:28 · 324 阅读 · 1 评论