队列的查存取操作


/*

查:   显示所有元素     显示头元素

存:

取:

注:判断队是否满或者空

 */

import java.util.Arrays;

import java.util.Scanner;

public class Solution

{

    public static void main(String[] args)

        {

             ArrQueue queue=new ArrQueue(3);

             Scanner sc=new Scanner(System.in);

             boolean loop=true;

             char key=' '; //接受用户输入

         while(loop)

         {

              System.out.println("s(show):显示队列");

              System.out.println("e(exit):退出程序");

              System.out.println("a(add):插入数据");

              System.out.println("g(get):获取数据");

              System.out.println("h(head):查看头数据");

              key=sc.next().charAt(0);

              switch(key)

              {

                  case 's':

                       queue.showArrQueue();

                       break;

                  case 'a':

                       System.out.println("输入一个数");

                       int value=sc.nextInt();

                       queue.addArrQueue(value);

                       break;

                  case 'g':

                       try

                           {

                                int res =queue.getArrQueue();

                                System.out.println("取出来的数是:"+res);

                           }

                       catch(Exception e)

                          {

                                System.out.println(e.getMessage());

                           }

                           break;

                  case 'h':

                       try

                           {

                                int res =queue.headArrQueue();

                                System.out.println("对头的数据是:"+res);

                            }

                       catch(Exception e)

                       {

                            System.out.println(e.getMessage());

                       }

                       break;

              case 'e':

                      sc.close();

                      loop=false;

                      break;

                      default:

                      break;

        }

     }

             System.out.println("退出程序");

       }

}

class ArrQueue

{

private int maxSize;

private int rear;     //队尾

private int front;    //队头

int arr[];      //定义数组模拟队列存放数据

//队列构造器

public ArrQueue(int arrmaxSize)

{

maxSize=arrmaxSize;

arr=new int [arrmaxSize];

rear=-1; //指向队尾,即队列的最后一个位置

front=-1;     //指向队列头部,也就是队头的前一个位置

}

//是否为满

public boolean isFull()

{

return rear==maxSize-1;

}

//是否为空

public boolean isEmpty()

{

return rear==front;

}

//添加元素

public void addArrQueue(int value) 

{

if(isFull())

{

System.out.println("队满");

return;

}

rear++;

arr[rear] =value;

}

//获得元素

public int getArrQueue() 

{

if(isEmpty())

{

throw new RuntimeException("队空");

}

front++;

return arr[front];

}

public void showArrQueue() //显示队列所有元素

{

if(isEmpty())

{

System.out.println("队空");

return;

}

System.out.println(Arrays.toString(arr));

}

//显示队列的头数据

public int headArrQueue() 

{

if(isEmpty())

{

throw new RuntimeException("队空");

}

return arr[front+1];

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1稀疏数组 没什么好说的,挺简单的。就是讲数组转换为n行3列的二维数组。 接下来是代码 package com.a...
    文茶君阅读 276评论 0 0
  • /*今天的主要内容:1、桶排序、计数排序的介绍2、求排序后的数组相邻两个数的最大差值3、用数组实现大小固定的队列和...
    须臾之北阅读 869评论 0 0
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 2,041评论 0 2
  • Day01 class 例子{ public static void main(String[] args){ ...
    周书达阅读 1,211评论 0 0
  • (第9部分) 曾经在处里无限风光和受人瞩目的高新刚,如今被流放似地下放到水库这个荒无人烟的地方,他不用怎么留心就能...
    明重阅读 263评论 0 4

友情链接更多精彩内容