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

Java實(shí)現(xiàn)隊(duì)列的三種方法集合

 更新時間:2020年09月16日 14:17:28   作者:顏顏顏顏顏越  
這篇文章主要介紹了Java實(shí)現(xiàn)隊(duì)列的三種方法集合,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

數(shù)組實(shí)現(xiàn)隊(duì)列

//數(shù)組實(shí)現(xiàn)隊(duì)列
class queue{
 int[] a = new int[5];
 int i = 0;
 //入隊(duì)操作
 public void in(int m) {
 a[i++] = m;
 }
// 出隊(duì)列操作  取出最前面的值 通過循環(huán)遍歷把所有的數(shù)據(jù)向前一位
 public int out() {
 int index = 0;
 int temp = a[0];
 for(int j = 0;j < i;j++) {
  a[j] = a[j + 1];
 }
 return temp;
 } 
}

ArrayList實(shí)現(xiàn)隊(duì)列

//集合實(shí)現(xiàn)隊(duì)列
class queue{
 List<Integer> list = new ArrayList<Integer>();
 int index = 0;
 
 public void in(int n) {
 list.add(n);
 index++;
 }
 //出隊(duì)列操作
 //出隊(duì)
  public int out(){ 
    if(!list.isEmpty()){ 
      index--; 
      return list.remove(0); 
    } 
    return -1; 
  } 
}

兩個堆棧實(shí)現(xiàn)隊(duì)列

//兩個堆棧實(shí)現(xiàn)一個隊(duì)列
class queue3 {

 Stack<Integer> stackA = new Stack<Integer>();
 Stack<Integer> stackB = new Stack<Integer>();

 //入隊(duì)
 public void in(int n) {
   stackA.push(n);
 }

 //出隊(duì) 我們把A里面的元素遍歷拿出放入B中 再拿出B中的第一個元素 
 public int out() {
  //判斷b棧有沒有元素 有返回false 無返回真
   if(stackB.isEmpty()) {
    while(!stackA.isEmpty()) {
    stackB.push(stackA.pop());
    }
   }
   return stackB.pop();
 }
}

補(bǔ)充知識:java使用鏈表實(shí)現(xiàn)隊(duì)列

隊(duì)列使用Java進(jìn)行鏈表實(shí)現(xiàn),在網(wǎng)上找到了一張圖,很好,借鑒一下

設(shè)置兩個結(jié)點(diǎn)node,front指向隊(duì)首元素,rear指向隊(duì)尾;

上代碼:

 public class LinkedQueue {
 
  Node front;//隊(duì)頭指針,指向隊(duì)頭節(jié)點(diǎn)
  Node rail;//隊(duì)尾指針,指向隊(duì)尾節(jié)點(diǎn) 
  int size = 0;//記錄隊(duì)列長度 
 
  //構(gòu)造函數(shù)
  public LinkedQueue() {
    front = rail = null;
  }
 
  public boolean isEmpty() {
    return size == 0 ? true : false;
  }
 
  //添加元素
  public boolean addQueue(Object ele) {
    if (size == 0) {
      front = new Node(null, ele);
      rail = front;
      size++;
      return true;
    }
    Node s = new Node(null, ele);
    //這塊有個主意的地方,一旦rail設(shè)置了next屬性,因?yàn)閒ront節(jié)點(diǎn)與rail節(jié)點(diǎn)指向了同一個node節(jié)點(diǎn),持有同一個結(jié)點(diǎn)的一個引用,因此front節(jié)點(diǎn)next屬性也被填充
    rail.setNext(s);
    rail = s;
    size++;
    return true;
  } 
 
  /**
   * 刪除元素,出隊(duì)列
   * @return
   */
  public boolean deleteQueue() {
    if (isEmpty()) {
      System.out.println("當(dāng)前隊(duì)列為空");
      return false;
    } 
    front = front.next;
    size--;
    return true; 
  } 
 
  public static void main(String[] args) {
    LinkedQueue queue = new LinkedQueue();
 
    queue.addQueue(1);
    queue.addQueue(2);
    queue.addQueue(3);
    queue.deleteQueue();
 
  } 
}
 
/**
 * 首先鏈表底層是一個個結(jié)點(diǎn)
 */
class Node {
 
  Node next;
  Object element;
 
  public Node(Node next, Object element) {
    this.next = next;
    this.element = element;
  }
 
  public Node getNext() {
    return next;
  }
 
  public void setNext(Node next) {
    this.next = next;
  }
 
  public Object getElement() {
    return element;
  }
 
  public void setElement(Object element) {
    this.element = element;
  }
 
}

以上這篇Java實(shí)現(xiàn)隊(duì)列的三種方法集合就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 實(shí)現(xiàn)java簡單的線程池

    實(shí)現(xiàn)java簡單的線程池

    這篇文章主要為大家詳細(xì)介紹了java簡單實(shí)現(xiàn)多線程,及java爬蟲使用線程池實(shí)例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java入門之集合框架詳解

    Java入門之集合框架詳解

    本文介紹了Java集合框架體系結(jié)構(gòu),包括List、Set和Map接口及其常用實(shí)現(xiàn)類,重點(diǎn)講解了ArrayList、LinkedList、HashSet、TreeSet和HashMap等類的使用方法,并詳細(xì)介紹了泛型的定義和作用,最后,還討論了集合的遍歷和并發(fā)修改異常處理
    2025-01-01
  • SpringBoot MyBatis簡單快速入門例子

    SpringBoot MyBatis簡單快速入門例子

    MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。這篇文章主要介紹了SpringBoot MyBatis快速入門-簡單例子,需要的朋友可以參考下
    2021-07-07
  • springboot解決前后端分離時的跨域問題

    springboot解決前后端分離時的跨域問題

    這篇文章主要介紹了springboot如何解決前后端分離時的跨域問題,幫助大家更好的理解和學(xué)習(xí)使用springboot,感興趣的朋友可以了解下
    2021-04-04
  • springboot搭建訪客管理系統(tǒng)的實(shí)現(xiàn)示例

    springboot搭建訪客管理系統(tǒng)的實(shí)現(xiàn)示例

    這篇文章主要介紹了springboot搭建訪客管理系統(tǒng)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 簡單學(xué)習(xí)Java+MongoDB

    簡單學(xué)習(xí)Java+MongoDB

    本文給大家介紹的是如何簡單的使用java+MongoDB實(shí)現(xiàn)數(shù)據(jù)調(diào)用的問題,非常的實(shí)用,有需要的小伙伴可以參考下
    2016-03-03
  • Javafx簡單實(shí)現(xiàn)【我的電腦資源管理器】效果

    Javafx簡單實(shí)現(xiàn)【我的電腦資源管理器】效果

    這篇文章主要介紹了Javafx簡單實(shí)現(xiàn)【我的電腦資源管理器】效果,涉及Javafx操作系統(tǒng)文件模擬資源管理器的實(shí)現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • maven setting多倉庫配置方式

    maven setting多倉庫配置方式

    這篇文章主要介紹了maven setting多倉庫配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • springcloud注冊hostname或者ip的那些事

    springcloud注冊hostname或者ip的那些事

    Spring cloud是一個基于Spring Boot實(shí)現(xiàn)的服務(wù)治理工具包,在微服務(wù)架構(gòu)中用于管理和協(xié)調(diào)服務(wù)的。這篇文章主要介紹了springcloud注冊hostname或者ip,需要的朋友可以參考下
    2019-11-11
  • java基于servlet編寫上傳下載功能 類似文件服務(wù)器

    java基于servlet編寫上傳下載功能 類似文件服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了java基于servlet編寫上傳下載功能,類似文件服務(wù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評論

安仁县| 江孜县| 天祝| 天气| 新营市| 安国市| 定西市| 长寿区| 平湖市| 手机| 蕉岭县| 太湖县| 金平| 湘潭县| 镇巴县| 怀来县| 资兴市| 孝感市| 彭阳县| 鄂伦春自治旗| 友谊县| 得荣县| 峨边| 进贤县| 新化县| 延吉市| 登封市| 神农架林区| 锡林郭勒盟| 洪湖市| 略阳县| 丽水市| 濮阳县| 阳原县| 栾川县| 临洮县| 嘉荫县| 望奎县| 平武县| 安阳市| 西昌市|