伴你如风、护你如影|

xzh-yyds

园龄:3年9个月粉丝:0关注:2

leetcode641-设计循环双端队列

设计循环双端队列

class MyCircularDeque {
    class ListNode{
        int val;
        ListNode prev, next;
        public ListNode(){
            this.prev = this.next = null;
        }
        public ListNode(int val){
            this.val = val;
            this.prev = this.next = null;
        }
    }
    ListNode head = new ListNode(), tail = new ListNode();
    int capacity, size = 0;
    public MyCircularDeque(int k) {
        capacity = k;
        head.prev = null;
        head.next = tail;
        tail.prev = head;
        tail.next = null;
    }
    
    public boolean insertFront(int value) {
        if(size == capacity)    return false;
        else{
            ListNode node = new ListNode(value);
            node.prev = head;
            node.next = head.next;
            head.next.prev = node;
            head.next = node;
            size++;
            return true;
        }
    }
    
    public boolean insertLast(int value) {
        if(size == capacity)    return false;
        else{
            ListNode node = new ListNode(value);
            node.prev = tail.prev;
            node.next = tail;
            tail.prev.next = node;
            tail.prev = node;
            size++;
            return true;
        }
    }
    
    public boolean deleteFront() {
        if(size == 0)   return false;
        else{
            ListNode node = head.next.next;
            head.next = node;
            node.prev = head;
            size--;
            return true;
        }
    }
    
    public boolean deleteLast() {
        if(size == 0)   return false;
        else{
            ListNode node = tail.prev.prev;
            tail.prev = node;
            node.next = tail;
            size--;
            return true;
        }
    }
    
    public int getFront() {
        if(size == 0)   return -1;
        else    return head.next.val;
    }
    
    public int getRear() {
        if(size == 0)   return -1;
        else    return tail.prev.val;
    }
    
    public boolean isEmpty() {
        return size == 0;
    }
    
    public boolean isFull() {
        return size == capacity;
    }
}

本文作者:xzh-yyds

本文链接:https://www.cnblogs.com/xzh-yyds/p/16587432.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   xzh-yyds  阅读(13)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开