zoukankan      html  css  js  c++  java
  • 队列

    
    

    队列:

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

     

    循环队列

    /**
    * 先进先出
    */
    class MyCircularQueue {

       private int[] data;
       private int size;
       private int head; //头指针
       private int tail; //尾指针

       public MyCircularQueue(int k) {
           this.data = new int[k];
           this.size = 0;
           this.head = -1;
           this.tail = -1;
      }

       public boolean enQueue(int value) {
           if (size == data.length){
               return false;
          }
           tail = (tail + 1)%data.length;
           if (size == 0){
               head = tail;
          }
           size ++;
           data[tail] = value;
           return true;
      }

       public boolean deQueue() {
           if (size == 0){
               return false;
          }
           head = (head + 1)%data.length;
           size --;
           return true;
      }

       public int Front() {
           if(size == 0){
               return -1;
          }
           return data[head];
      }

       public int Rear() {
           if(size == 0){
               return -1;
          }
           return data[tail];
      }

       public boolean isEmpty() {
           return size == 0;
      }

       public boolean isFull() {
           return size == data.length;
      }
    }

     

     
  • 相关阅读:
    NFC
    精品收藏:GitHub人工智能AI开源项目
    typedef的用法,C语言typedef详解
    “此人不存在”
    视频换脸-Deepfakes代码解读和训练说明
    Linux下__attribute__((visibility ("default")))的使用
    piao
    高通开源android源码下载
    iOpenWorskSDK下载和答疑贴
    解构领域驱动设计(三):领域驱动设计
  • 原文地址:https://www.cnblogs.com/z-jx/p/11581640.html
Copyright © 2011-2022 走看看