首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用循环打印队列值

使用循环打印队列值
EN

Stack Overflow用户
提问于 2018-11-30 18:26:39
回答 1查看 65关注 0票数 0
代码语言:javascript
复制
 package q;
import java.util.*;
class GFG
{
static class Queue
{
   static Stack<Integer> s1 = new Stack<Integer>();
   static Stack<Integer> s2 = new Stack<Integer>();
   static void Q(int x)
   {
       while (!s1.isEmpty())
       {
           s2.push(s1.pop());  
       }  
       s1.push(x);
       while (!s2.isEmpty())
       {
           s1.push(s2.pop());  
       }
   }
   static int dQ()
   {
       if (s1.isEmpty())
       {
           System.out.println("Q is Empty");
           System.exit(0);
       }
       int x = s1.peek();
       s1.pop();
       return x;
   }
}
public static void main(String[] args) { 
   Queue q = new Queue();
   q.Q(100);
   q.Q(200);
   q.Q(300);
   System.out.println(q.dQ());
   System.out.println(q.dQ());
   System.out.println(q.dQ());
}
}

我正在做一个任务,它需要使用两个堆栈来构建一个队列。我已经做到了,但我有一个问题。如何使用循环打印值而不是逐行打印值?由于某些原因,它不能工作。我试着写道:

代码语言:javascript
复制
while(q.dQ()!){
   System.out.println(q.dQ());}

但这是错误的

EN

回答 1

Stack Overflow用户

发布于 2018-11-30 20:08:18

您可以在Queue类中定义另一个方法来检查队列是否为空。类似于:

代码语言:javascript
复制
static boolean isEmpty(){
   // returns true is both stacks are empty
   if(s1.isEmpty() && s2.isEmpty()){
       return true;
   }
   return false;
}

然后,您可以使用循环打印队列,如下所示:

代码语言:javascript
复制
while(! q.isEmpty()){
   System.out.println(q.dQ());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53555631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档