| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- type MyCircularQueue struct {
 
- 	queue  []int
 
- 	size   int
 
- 	length int
 
- 	beg    int
 
- 	end    int
 
- }
 
- /** Initialize your data structure here. Set the size of the queue to be k. */
 
- func Constructor(k int) (queue MyCircularQueue) {
 
- 	queue.queue = make([]int, k)
 
- 	queue.size = k
 
- 	return
 
- }
 
- /** Insert an element into the circular queue. Return true if the operation is successful. */
 
- func (this *MyCircularQueue) EnQueue(value int) bool {
 
- 	if this.IsFull() {
 
- 		return false
 
- 	}
 
- 	this.queue[this.end] = value
 
- 	this.end = (this.end + 1) % this.size
 
- 	this.length++
 
- 	return true
 
- }
 
- /** Delete an element from the circular queue. Return true if the operation is successful. */
 
- func (this *MyCircularQueue) DeQueue() bool {
 
- 	if this.IsEmpty() {
 
- 		return false
 
- 	}
 
- 	this.beg = (this.beg + 1) % this.size
 
- 	this.length--
 
- 	return true
 
- }
 
- /** Get the front item from the queue. */
 
- func (this *MyCircularQueue) Front() int {
 
- 	if this.IsEmpty() {
 
- 		return -1
 
- 	}
 
- 	return this.queue[this.beg]
 
- }
 
- /** Get the last item from the queue. */
 
- func (this *MyCircularQueue) Rear() int {
 
- 	if this.IsEmpty() {
 
- 		return -1
 
- 	}
 
- 	return this.queue[(this.end+this.size-1)%this.size]
 
- }
 
- /** Checks whether the circular queue is empty or not. */
 
- func (this *MyCircularQueue) IsEmpty() bool {
 
- 	return this.length == 0
 
- }
 
- /** Checks whether the circular queue is full or not. */
 
- func (this *MyCircularQueue) IsFull() bool {
 
- 	return this.length == this.size
 
- }
 
- /**
 
-  * Your MyCircularQueue object will be instantiated and called as such:
 
-  * obj := Constructor(k);
 
-  * param_1 := obj.EnQueue(value);
 
-  * param_2 := obj.DeQueue();
 
-  * param_3 := obj.Front();
 
-  * param_4 := obj.Rear();
 
-  * param_5 := obj.IsEmpty();
 
-  * param_6 := obj.IsFull();
 
-  */
 
 
  |