算法提高 队列操作

原创 2017年02月10日 15:18:51

问题描述
  队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输入格式
  第一行一个数字N。
  下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。
输出格式
  若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。
样例输入
7
1 19
1 56
2
3
2
3
2
样例输出
19
1
56
0
no
数据规模和约定
  1<=N<=50

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        Queue<Integer> myQueue = new LinkedList<Integer>();
        for ( int i = 0 ; i < N ; i++){
            int flag = in.nextInt();
            if ( flag == 1){
                int element = in.nextInt();
                myQueue.offer(element);
            }else if ( flag == 2){
                if ( myQueue.isEmpty()){
                    System.out.println("no");
                    /*
                     * 注意队列为空时有要强行退出.这是这题唯一的坑
                     * 如果不加"return;"就是60分,
                     * 加了"return;"这一行就是100分
                     */
                    return;
                }else{
                    System.out.println(myQueue.poll());
                }
            }else if ( flag == 3){
                int len = myQueue.size();
                System.out.println(len);
            }
        }
        in.close();
    }
}

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。若需转载,请注明http://blog.csdn.net/qq_30091945 举报

相关文章推荐

算法提高 队列操作

问题描述   队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。 输入格式   第一行一个数字N。   下面N行,每行第一个数字为操作命令(1...

蓝桥 ADV-233 算法提高 队列操作 【STL】

算法提高 队列操作   时间限制:1.0s   内存限制:256.0MB      问题描述   队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

[李景山php]算法系列|php 进行队列操作

<?php /** * Created by PhpStorm. * User: ziniu * Date: 2016/9/22 * Time: 16:22 */// php 队列 实现/*...

栈和队列算法一之栈的基本操作

栈是限定仅在表尾进行charuhuo

数据结构 ——队列操作的算法

队列操作的算法: #include #include typedef struct Queue //队列的结构体 { int *pBase; ...

【数据结构与算法C】利用两个栈S1S2模拟一个队列,用栈的基本操作实线EnQueue,DeQueue,QueueEmpty

【数据结构与算法C】利用两个栈S1S2模拟一个队列,用栈的基本操作实线EnQueue,DeQueue,QueueEmpty入队列Created with Raphaël 2.1.2开始S2为空出S1入...

对队列的操作和算法

一、队列的定义 队列(queue)是一种先进先出的线性表。它只允许在表的一端进行插入,而在另一端删除元素。 允许插入的一端叫做队尾(rear),允许删除的一端则称为对头(front)。 队列一般也分为...

【LeetCode-面试算法经典-Java实现】【225-Implement Stack using Queues(用队列实现栈操作)】

【225-Implement Stack using Queues(用队列实现栈操作)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.co...

二叉树遍历非递归算法所用到的栈以及层次遍历所用到的队列的基本操作算法的实现

栈的基本操作算法的实现 基本数据结构 typedef struct BiNode {  char data;  struct BiNode *lchild,*rchild; ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)