中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java實現隊列的方法有哪些

發布時間:2020-11-03 15:53:32 來源:億速云 閱讀:239 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關Java實現隊列的方法有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

數組實現隊列

//數組實現隊列
class queue{
 int[] a = new int[5];
 int i = 0;
 //入隊操作
 public void in(int m) {
 a[i++] = m;
 }
// 出隊列操作  取出最前面的值 通過循環遍歷把所有的數據向前一位
 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實現隊列

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

兩個堆棧實現隊列

//兩個堆棧實現一個隊列
class queue3 {

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

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

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

補充知識:java使用鏈表實現隊列

隊列使用Java進行鏈表實現,在網上找到了一張圖,很好,借鑒一下

Java實現隊列的方法有哪些

設置兩個結點node,front指向隊首元素,rear指向隊尾;

上代碼:

 public class LinkedQueue {
 
  Node front;//隊頭指針,指向隊頭節點
  Node rail;//隊尾指針,指向隊尾節點 
  int size = 0;//記錄隊列長度 
 
  //構造函數
  public LinkedQueue() {
    front = rail = null;
  }
 
  public boolean isEmpty() {
    return size == 0 &#63; 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設置了next屬性,因為front節點與rail節點指向了同一個node節點,持有同一個結點的一個引用,因此front節點next屬性也被填充
    rail.setNext(s);
    rail = s;
    size++;
    return true;
  } 
 
  /**
   * 刪除元素,出隊列
   * @return
   */
  public boolean deleteQueue() {
    if (isEmpty()) {
      System.out.println("當前隊列為空");
      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();
 
  } 
}
 
/**
 * 首先鏈表底層是一個個結點
 */
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實現隊列的方法有哪些有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴青县| 长垣县| 新绛县| 凤庆县| 湘西| 乃东县| 柘城县| 延吉市| 于都县| 乌兰察布市| 遂川县| 鄯善县| 内江市| 康平县| 石狮市| 阳山县| 米脂县| 新巴尔虎右旗| 霸州市| 连云港市| 宣化县| 祁门县| 鹤壁市| 兰州市| 沁源县| 泽库县| 元朗区| 宜兰市| 沈阳市| 吴忠市| 邢台县| 府谷县| 阜阳市| 奇台县| 保康县| 辽宁省| 瑞昌市| 洛浦县| 武冈市| 花莲市| 乳山市|