![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
GoodFiend
这个作者很懒,什么都没留下…
展开
-
逆波兰计算器(整数)
逆波兰计算器 输入一个逆波兰表达式(后缀表达式),使用栈,计算器结果; 思路:(以:(3+4)5-6,为例子,转为逆波兰表达式为:3 4 + 5 * 6 - ) 1.从左到右扫描,将3和4先压入栈里; 2.遇到+运算法,因此弹出4和3(4为栈顶元素,3为次顶元素),计算出3+4的值,得7,再将7入栈; 3.将5入栈; 4.遇到,将弹出5和7,计算的35入栈; 5.将6入栈; 6.遇到-,取出35...原创 2019-10-25 16:00:56 · 130 阅读 · 0 评论 -
使用栈进行基础的表达式计算
思路 1.使用一个数字栈一个符号栈; 2.通过一个index值遍历表达式; 3.如发现是数字,就直接放入数字栈; 4.如发现是符号,进行优先级比较,如果当前的操作符的优先级小于或者等于栈顶的操作符,就需要从数字栈中pop两个数字,从符号栈中pop一个符号进行计算,将得到的结果放入数字栈,将当前的符号放入符号栈,如果操作符优先级大于栈顶的操作符,则直接入符号栈; 5.当表达式扫描完毕,就顺序的从数栈...原创 2019-10-23 16:05:44 · 660 阅读 · 0 评论 -
数组模拟栈
实现栈的思路分析 1.初始化一个top=-1,来表示栈顶; 2.入栈的操作:当有数据加入时,top++;stack[top]=data; 3.出栈的操作:int value = stack[pop]; pop–;return value; 代码实现 方法实现 package com.company; public class ArrayStack { private int maxS...原创 2019-10-22 16:35:47 · 153 阅读 · 0 评论 -
Josephu问题
Josephu问题描述 设编号为1,2,…n的m个人围坐一圈,约定编号为n的人从1开始报数,数到k的那个人出列,他的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。 Josephu解决思路 1.构建一个单向的环形链表; 2.需求创建一个辅助指针(变量)helper,事先应该指向环形链表的最后这个节点; 3.将first和helper移动n-1次...原创 2019-10-22 12:10:41 · 373 阅读 · 0 评论 -
双向链表的实现
思路分析 遍历 可以向前遍历也可以向后遍历 添加(默认添加到双向链表的最后) 1.先找到双向链表的最后这个节点; 2.temp.next = newHeroNode; 3.newHeroNode.pre = temp; 修改 和单向链表一样 删除 1.因为是双向链表,可以实现自我删除某个节点而不需要像单向列表一样找前面一个节点; 2.temp.pre.next = temp.next; 3.tem...原创 2019-10-21 10:33:24 · 202 阅读 · 0 评论 -
单链表的实现
链表(LinkedList) 1.链表是以节点的方式存储,是链式存储; 2.每个节点包含data域和next域; 3.链表的各个节点不一定是连续存储的; 4.链表分带头节点的链表和没有头节点的链表 链表在内存中的存储示意图 链表逻辑图 单链表的增删改查的实现 代码如下: package com.company; public class SingleLinkedListDemo { ...原创 2019-10-16 20:11:25 · 159 阅读 · 1 评论 -
数组模拟环形队列
思路 1.front变量的含义:front就指向队列的第一个元素 2.rear变量的含义:rear指向队列的最后一个元素的后一个位置,因为希望空出一个空间作为约定,rear的初始值=0 3.当队列满时,条件是(rear+1)%maxSize == front 4.当队列为空的条件,rear == front 5.队列中的有效个数为(rear+maxSize-front)%maxSize 代码实现 ...原创 2019-10-16 17:52:02 · 104 阅读 · 0 评论 -
稀疏数组
基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1.记录数组一共有几行几列,有多少个不同的值; 2.把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。 实现思路 二维数组 转 稀疏数组 1.先遍历二维数组 得到非0数据的个数 2.创建对应的稀疏数组 将得到的稀疏数组存储在map.data文件中 读取map...原创 2019-10-16 12:54:40 · 111 阅读 · 0 评论