![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
爱谁谁未成年
一个热爱编程的人
展开
-
中缀表达式转化为后缀表达式
public static void InFixToPostFix() { Stack<Character> s = new Stack<Character>(); String expression; Character token; int i = 0; Scanner sc = new Scanner(System原创 2017-09-04 22:06:04 · 255 阅读 · 0 评论 -
Josephus环问题解决
Josephus环的问题看起来很简单,假设有n个人排成一个圈。从第一个人开始报数,数到第m个人的时候这个人从队列里出列。然后继续在环里数后面第m个人,让其出列直到只剩下一个人使用队列解决此问题 一种方法是我们可以使用队列。怎么来处理呢?因为我们每次都是处理n个元素里第m个元素。如果我们每次从队列里一边取元素,一边又加入到队列的末尾,直到数到第m的时候。这个第m的元素直接让它移除,我们就保证了取到恰转载 2017-09-05 09:10:02 · 689 阅读 · 0 评论 -
使用一个数组实现栈
public class MyStack { private Object[] stack; private int size;//元素的个数 //初始化数组的大小 public MyStack(int length){ stack=new Object[length]; } //元素的个数 public int size(){转载 2017-09-05 16:24:25 · 285 阅读 · 0 评论 -
使用一个数组实现两个栈
public class TwoStack { private Object[] stack; //栈1在数组中的下标 private int size1; //栈2在数组中的下标 private int size2; //初始化数组的大小 public TwoStack(int length){ stack=new Objec原创 2017-09-05 17:25:06 · 1095 阅读 · 0 评论 -
提出一种数据结构支持push和pop操作以及第三种操作findMin,返回最小值,所有操作均以O(1)最坏时间运行
public class MyStack1 { private int[] data;//用于支持push和pop操作的数组 private int[] minData;//用于支持findMin操作的数组,存储一个最小值序列 private int dataIndex;//data数组的下标索引 private int minIndex;//minData数组的下标原创 2017-09-05 21:48:01 · 1243 阅读 · 0 评论 -
用一个数组实现三个栈结构
所用方法为,第一个栈从数组底部开始,第二个栈从数组顶部开始,第三个栈从数组中间开始,并且向右。过程中需要不断的debug push操作的判断:第一步就是需要判断整个数组是否满了 第二步就是判断栈是否满了,满了需要移动栈 pop操作的判断:第一步就是判断栈是否为空 isCanPush:判断栈是否可以继续push,根据栈的顶部下标进行判断原创 2017-09-06 10:45:45 · 546 阅读 · 0 评论