zoukankan      html  css  js  c++  java
  • [Leetcode]设计循环队列

    题目

     

    代码

    class MyCircularQueue {
    public:
        /** Initialize your data structure here. Set the size of the queue to be k. */
        MyCircularQueue(int k):array(k),pre(0),rail(0),numbers(0) {
           
        }
        
        /** Insert an element into the circular queue. Return true if the operation is successful. */
        bool enQueue(int value) {
            if(numbers==array.size())
                return false;
            array[rail]=value;
            rail=(rail+1)%array.size();
            numbers++;
            return true;
        }
        
        /** Delete an element from the circular queue. Return true if the operation is successful. */
        bool deQueue() {
          if(numbers<=0)
              return false;
          pre=(pre+1)%array.size();
          numbers--;
          return true;
        }
        
        /** Get the front item from the queue. */
        int Front() {
            if(isEmpty())
                return -1;
            return array[pre];
        }
        
        /** Get the last item from the queue. */
        int Rear() {
            if(isEmpty())
                return -1;
            int pos=(rail-1+array.size())%array.size();
            std::cout<<"weizhi:"<<abs(pos);
            return array[abs(pos)];
        }
        
        /** Checks whether the circular queue is empty or not. */
        bool isEmpty() {
            if(pre==rail&&numbers==0)
                return true;
            return false;
        }
        
        /** Checks whether the circular queue is full or not. */
        bool isFull() {
            if(numbers==array.size())
                return true;
            return false;
        }
    private:
    
        int numbers;//已经存储的数值
        int pre;
        int rail;
        vector<int> array;
        
    };
    
    /**
     * Your MyCircularQueue object will be instantiated and called as such:
     * MyCircularQueue* obj = new MyCircularQueue(k);
     * bool param_1 = obj->enQueue(value);
     * bool param_2 = obj->deQueue();
     * int param_3 = obj->Front();
     * int param_4 = obj->Rear();
     * bool param_5 = obj->isEmpty();
     * bool param_6 = obj->isFull();
     */
  • 相关阅读:
    PyDev for eclipse 插件下载地址
    Impala SQL 语言元素(翻译)[转载]
    oracle9i-11.2安装包及补丁包下载链接
    oracle link的创建过程
    Oracle 查询历史数据(转帖)
    Alpha、Beta、RC、GA版本的区别
    oracle wm_concat(column)函数的使用
    Quest.Central.for.DB2.v5.0.2.4下载地址
    Hadoop 管理工具HUE配置-初始配置
    maven编译下载源码
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053569.html
Copyright © 2011-2022 走看看