最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列示例介紹

 更新時(shí)間:2022年01月10日 09:54:41   作者:小輝小輝-  
大家好,本篇文章主要講的是java數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列示例介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽

 從頂部進(jìn)去數(shù)據(jù),從底部出來數(shù)據(jù),用數(shù)組實(shí)現(xiàn)隊(duì)列,但是下面這個(gè)隊(duì)列,只能進(jìn)行一次存數(shù)值,取數(shù)值,不夠完善。

import java.util.Scanner;
 
public class ArrayQueueDemo {
    public static  void main(String[]args){
        //定義隊(duì)列大小maxsize
        ArrayQueue arrayQueue=new ArrayQueue(3);
        Scanner scanner=new Scanner(System.in);
        char key=' ';
        boolean  leap=true;
        while(leap){
            System.out.println("s(show):顯示隊(duì)列");
            System.out.println("e(exit):退出程序");
            System.out.println("h(head):顯示頭條數(shù)據(jù)");
            System.out.println("a(add):添加數(shù)據(jù)");
            System.out.println("g(get):從程序中取出隊(duì)列");
            System.out.println("請(qǐng)輸入一個(gè)數(shù)");
 
            key= scanner.next().charAt(0);
            switch (key){
                case 's':
                    arrayQueue.showQueue();
                    break;
 
                case 'h':
                    System.out.printf("頭數(shù)據(jù)為%d",arrayQueue.showHead());
                    break;
                case 'a':
                    System.out.println("輸入添加數(shù)據(jù)");
                   int data= scanner.nextInt();
                    arrayQueue.addQueue(data);
                    break;
                case 'g':
                   arrayQueue.getQueue();
                    break;
                case 'e':
                    leap=false;
                     break;
                default:
                    break;
 
 
            }
        }
 
    }
 
}
class ArrayQueue{
    private  int maxsize;//隊(duì)列大小
    private int rear;
    private int front;
    private int [] arry;
    public ArrayQueue(int maxsize1){
        maxsize=maxsize1;
        arry=new int[maxsize];
        front =-1;
        rear=-1;
    }
    //判斷隊(duì)列是否滿
    public boolean isFull(){
        return rear==maxsize-1;
    }
    //增加數(shù)據(jù)
    public  void addQueue(int data){
        if (isFull()){
            System.out.println("隊(duì)列滿了");
        }
        else{
            arry[rear+1]=data;
            rear++;
 
 
        }
    }
    //顯示數(shù)據(jù)
    public  void showQueue(){
        for (int i = 0; i < arry.length; i++) {
            System.out.println();
            System.out.printf("%d",arry[i]);
 
        }
    }
    //是否空
    public boolean isEmpety(){
        return rear== front;
    }
    //顯示頭數(shù)據(jù)
    public int showHead() {
        if (isEmpety()) {
 
            throw new RuntimeException("隊(duì)列是空的");
        }
        return arry[front +1];
 
    }
    public int getQueue(){
        if (isEmpety()){
            throw new RuntimeException("隊(duì)列是空");
 
        }
        System.out.printf("去除一個(gè)隊(duì)列為%d",arry[++front]);
        arry[front]=0;
 
        return 0;
 
    }
 
 
 
 
}

 循環(huán)隊(duì)列,可以進(jìn)行數(shù)據(jù)插入和取出,是上個(gè)普通隊(duì)列的增強(qiáng)版。上個(gè)隊(duì)列只能使用一次的情況被解決了

import java.util.Scanner;
 
public class CircleArrayQueueDemo {
    public  static void main(String[] args){
        //定義隊(duì)列大小maxsize
        cirCleArray cirCleArray=new cirCleArray(3);//隊(duì)列大小是三,但是有效數(shù)據(jù)是兩個(gè)
        Scanner scanner=new Scanner(System.in);
        char key=' ';
        boolean  leap=true;
        while(leap){
            System.out.println("s(show):顯示隊(duì)列");
            System.out.println("e(exit):退出程序");
            System.out.println("h(head):顯示頭條數(shù)據(jù)");
            System.out.println("a(add):添加數(shù)據(jù)");
            System.out.println("g(get):從程序中取出隊(duì)列");
            System.out.println("請(qǐng)輸入一個(gè)數(shù)");
 
            key= scanner.next().charAt(0);
            switch (key){
                case 's':
                    cirCleArray.showCircleArray();
                    break;
 
                case 'h':
                    System.out.printf("頭數(shù)據(jù)為%d",cirCleArray.showHead());
                    break;
                case 'a':
 
                   cirCleArray.addQueue();
                    break;
                case 'g':
                    cirCleArray.getQueue();
                    break;
                case 'e':
                    leap=false;
                    break;
                default:
                    break;
 
 
            }
 
 
    }
 
    }
}
    class cirCleArray{
        private int maxsize;
        private int front;
        private int rear;
        private int [] arry;
        Scanner scanner=new Scanner(System.in);
        public cirCleArray(int maxsize1){
            this.maxsize=maxsize1;
          arry=new int[maxsize];
            front=0;
            rear=0;
        }
        //顯示隊(duì)列
        public void showCircleArray(){
            if (isEmpty()){
                System.out.println("隊(duì)列為空");
            }
            else{
                for (int i =front; i < front+size(); i++) {
                    System.out.printf("arry[%d]=%d\n",i % maxsize,arry[i % maxsize]);
                }
            }
 
        }
        public  int size(){
            return (rear+maxsize-front)%maxsize;
        }
        //隊(duì)列為空
        public boolean isEmpty(){
            return front==rear;
        }
        //隊(duì)列為滿
        public boolean isFull(){
            return (rear+1)%maxsize==front;
        }
        //添加數(shù)據(jù)
        public void addQueue(){
 
           if (isFull()){
               System.out.printf("隊(duì)列滿了");
           }
           else{
               System.out.printf("輸入添加的數(shù)據(jù)");
               int  data=scanner.nextInt();
               arry[rear]=data;
             if (rear<maxsize-1){
                 rear++;
             }
             else {
                 rear=(rear+1)%maxsize;
             }
 
           }
 
 
        }
        //取出數(shù)據(jù)
        public void getQueue(){
            if (isEmpty()){
                System.out.println("隊(duì)列是空的");
            }
            else{
                System.out.printf("取出數(shù)據(jù)%d",arry[front]);
//               arry[front]=0;
//                front++;
                front=(front+1)%maxsize;
 
            }
        }
        //顯示頭數(shù)據(jù)
        public int showHead() {
            if (isEmpty()) {
 
                throw new RuntimeException("隊(duì)列是空的");
            }
            return arry[front];
 
        }
    }

到此這篇關(guān)于java數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列示例介紹的文章就介紹到這了,更多相關(guān)java數(shù)組循環(huán)隊(duì)列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA-SpringBoot項(xiàng)目Debug啟動(dòng)不了(卡住不動(dòng))的原因分析

    IDEA-SpringBoot項(xiàng)目Debug啟動(dòng)不了(卡住不動(dòng))的原因分析

    這篇文章主要介紹了IDEA-SpringBoot項(xiàng)目Debug啟動(dòng)不了(卡住不動(dòng))的原因分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 淺談Java面向?qū)ο笾畠?nèi)部類

    淺談Java面向?qū)ο笾畠?nèi)部類

    內(nèi)部類是一個(gè)非常有用的特性但又比較難理解使用的特性,我們從外面看是非常容易理解的,無非就是在一個(gè)類的內(nèi)部在定義一個(gè)類。其實(shí)使用內(nèi)部類最大的優(yōu)點(diǎn)就在于它能夠非常好的解決多重繼承的問題
    2021-06-06
  • IDEA 2020.1 for Mac 下載安裝配置及出現(xiàn)的問題小結(jié)

    IDEA 2020.1 for Mac 下載安裝配置及出現(xiàn)的問題小結(jié)

    這篇文章主要介紹了IDEA 2020.1 for Mac 下載安裝配置及出現(xiàn)的問題小結(jié),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 詳解mybatis.generator配上最新的mysql 8.0.11的一些坑

    詳解mybatis.generator配上最新的mysql 8.0.11的一些坑

    這篇文章主要介紹了詳解mybatis.generator配上最新的mysql 8.0.11的一些坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • Java 反射機(jī)制

    Java 反射機(jī)制

    這篇文章簡要的說明了Java的反射機(jī)制,Java的反射是框架設(shè)計(jì)的靈魂,本文通過例子能看的更加清晰的理解
    2021-06-06
  • SpringBoot接口參數(shù)的默認(rèn)值與必要性最佳實(shí)踐記錄

    SpringBoot接口參數(shù)的默認(rèn)值與必要性最佳實(shí)踐記錄

    這篇文章主要介紹了SpringBoot接口參數(shù)的默認(rèn)值與必要性,通過合理設(shè)置接口參數(shù)的默認(rèn)值和必要性,我們可以創(chuàng)建出既健壯又靈活的?RESTful?API,需要的朋友可以參考下
    2024-08-08
  • MyBatis-Plus allEq()的用法詳解

    MyBatis-Plus allEq()的用法詳解

    這篇文章主要介紹了MyBatis-Plus allEq()的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • JAVA中堆、棧,靜態(tài)方法和非靜態(tài)方法的速度問題

    JAVA中堆、棧,靜態(tài)方法和非靜態(tài)方法的速度問題

    這篇文章主要介紹了JAVA中堆、棧,靜態(tài)方法和非靜態(tài)方法的速度問題,堆和棧得速度性能分析多角度給大家分析,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • 詳解如何解決SSM框架前臺(tái)傳參數(shù)到后臺(tái)亂碼的問題

    詳解如何解決SSM框架前臺(tái)傳參數(shù)到后臺(tái)亂碼的問題

    這篇文章主要介紹了詳解如何解決SSM框架前臺(tái)傳參數(shù)到后臺(tái)亂碼的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • java將文件轉(zhuǎn)成流文件返回給前端詳細(xì)代碼實(shí)例

    java將文件轉(zhuǎn)成流文件返回給前端詳細(xì)代碼實(shí)例

    Java編程語言提供了強(qiáng)大的文件處理和壓縮能力,下面這篇文章主要給大家介紹了關(guān)于java將文件轉(zhuǎn)成流文件返回給前端的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07

最新評(píng)論

泽州县| 连平县| 临夏市| 成都市| 淮安市| 永年县| 二连浩特市| 阜康市| 镇江市| 深泽县| 韶山市| 高邑县| 巴林右旗| 普洱| 潮州市| 铜山县| 沛县| 保山市| 永修县| 正定县| 长宁区| 红原县| 库尔勒市| 长葛市| 商南县| 金湖县| 惠水县| 万载县| 仁寿县| 玉屏| 长治县| 皋兰县| 新泰市| 永靖县| 高唐县| 灵璧县| 嵊州市| 正安县| 中方县| 青岛市| 同江市|