Java通过栈实现队列,队列实现栈 您所在的位置:网站首页 java里面stackpush Java通过栈实现队列,队列实现栈

Java通过栈实现队列,队列实现栈

2023-03-30 02:27| 来源: 网络整理| 查看: 265

如何仅用队列结构实现栈结构?          1、准备两个队列:data和help          2、假设往data中push数据1、2、3、4、5,当需要poll出5时,先将1、2、3、4 add进help队列中,                                                       在将data中的5 poll出来返回          3、然后执行swap,交换data个help性质          4、当需要pop出4时,步骤和2、3基本一致 如何仅用栈结构实现队列结构?          1、准备两个栈:stackPush和stackPop          2、假设往栈stackPush中push进五个数:1、2、3、4、5,然后需要pop出1时,先将stackPush中所有数据                全部add到stackPop中,然后stackPop通过pop出1返回          3、需要pop出2时,操作步骤与2基本一致 代码如下:

import java.util.LinkedList; import java.util.Queue; import java.util.Stack;public class StackAndQueueConvert_03 {//两个栈实现队列结构public static class TwoStacksQueue {private Stack stackPush;private Stack stackPop;public TwoStacksQueue() {stackPush = new Stack();stackPop = new Stack();}public void push(int pushInt) {stackPush.push(pushInt);}public int poll() {if (stackPop.empty() && stackPush.empty()) {throw new RuntimeException("Queue is empty!");} else if (stackPop.empty()) {while (!stackPush.empty()) {stackPop.push(stackPush.pop());}}return stackPop.pop();}public int peek() {if (stackPop.empty() && stackPush.empty()) {throw new RuntimeException("Queue is empty!");} else if (stackPop.empty()) {while (!stackPush.empty()) {stackPop.push(stackPush.pop());}}return stackPop.peek();}}//两个队列实现栈结构public static class TwoQueuesStack {private Queue data;private Queue help;public TwoQueuesStack() {data = new LinkedList();help = new LinkedList();}public void push(int pushInt) {data.add(pushInt);}public int peek() {if (data.isEmpty()) {throw new RuntimeException("Stack is empty!");}while (data.size() != 1) {help.add(data.poll());}int res = data.poll();help.add(res);swap();return res;}public int pop() {if (data.isEmpty()) {throw new RuntimeException("Stack is empty!");}while (data.size() > 1) {help.add(data.poll());}int res = data.poll();swap();return res;}private void swap() {Queue tmp = help;help = data;data = tmp;}}}

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有