隊列的查存取操作


/*

查: ? 顯示所有元素 ? ? 顯示頭元素

存:

取:

注:判斷隊是否滿或者空

?*/

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):插入數(shù)據(jù)");

????????????? System.out.println("g(get):獲取數(shù)據(jù)");

????????????? System.out.println("h(head):查看頭數(shù)據(jù)");

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

??????????????switch(key)

????????????? {

????????????????? case 's':

?????????????????????? queue.showArrQueue();

?????????????????????? break;

????????????????? case 'a':

???????????????????????System.out.println("輸入一個數(shù)");

?????????????????????? int value=sc.nextInt();

?????????????????????? queue.addArrQueue(value);

?????????????????????? break;

????????????????? case 'g':

???????????????????????try

?????????????????????????? {

??????????????????????????????? int res =queue.getArrQueue();

??????????????????????????????? System.out.println("取出來的數(shù)是:"+res);

?????????????????????????? }

???????????????????????catch(Exception e)

? ? ? ? ? ? ? ? ? ? ? ? ? {

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

?????????????????????????? }

?????????????????????????? break;

????????????????? case 'h':

?????????????????????? try

?????????????????????????? {

??????????????????????????????? int res =queue.headArrQueue();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("對頭的數(shù)據(jù)是:"+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[]; ? ?? //定義數(shù)組模擬隊列存放數(shù)據(jù)

//隊列構造器

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));

}

//顯示隊列的頭數(shù)據(jù)

public int headArrQueue()?

{

if(isEmpty())

{

throw new RuntimeException("隊空");

}

return arr[front+1];

}

}

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1稀疏數(shù)組 沒什么好說的,挺簡單的。就是講數(shù)組轉換為n行3列的二維數(shù)組。 接下來是代碼 package com.a...
    文茶君閱讀 282評論 0 0
  • /*今天的主要內(nèi)容:1、桶排序、計數(shù)排序的介紹2、求排序后的數(shù)組相鄰兩個數(shù)的最大差值3、用數(shù)組實現(xiàn)大小固定的隊列和...
    須臾之北閱讀 877評論 0 0
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 2,070評論 0 2
  • Day01 class 例子{ public static void main(String[] args){ ...
    周書達閱讀 1,213評論 0 0
  • (第9部分) 曾經(jīng)在處里無限風光和受人矚目的高新剛,如今被流放似地下放到水庫這個荒無人煙的地方,他不用怎么留心就能...
    明重閱讀 270評論 0 4

友情鏈接更多精彩內(nèi)容