![Go Rust解题——使用[ ]int 固定长度数组实现循环队列,第1张 Go Rust解题——使用[ ]int 固定长度数组实现循环队列,第1张](/aiimages/Go+Rust%E8%A7%A3%E9%A2%98%E2%80%94%E2%80%94%E4%BD%BF%E7%94%A8%5B+%5Dint+%E5%9B%BA%E5%AE%9A%E9%95%BF%E5%BA%A6%E6%95%B0%E7%BB%84%E5%AE%9E%E7%8E%B0%E5%BE%AA%E7%8E%AF%E9%98%9F%E5%88%97.png)
622. 设计循环队列 - 力扣(LeetCode)
题解rust 设计循环队列
设计循环队列 - 提交记录 - 力扣(LeetCode)
go 设计循环队列
设计循环队列 - 提交记录 - 力扣(LeetCode)
使用[ ]int 固定长度数组实现循环队列
注意保留一个空位,方便后续实现。长度 是可选项。重点是 isEmpty 和 isFull 两个函数的判断逻辑。代码type MyCircularQueue struct { head, Tail int Queue []int Length,size int}func Constructor(k int) MyCircularQueue { return MyCircularQueue{ head:0, Tail:0, Queue: make([]int,k+1,k+1), Length:0, size: k+1, }}func (this *MyCircularQueue) EnQueue(value int) bool { if this.IsFull() { return false } this.Queue[this.Tail]= value this.Tail = (this.Tail + 1 + this.size) % this.size this.Length += 1 return true}func (this *MyCircularQueue) DeQueue() bool { if this.IsEmpty() { return false } this.head = (this.head+1+this.size)%this.size this.Length -= 1 return true}func (this *MyCircularQueue) Front() int { if this.IsEmpty(){ return -1 } return this.Queue[this.head]}func (this *MyCircularQueue) Rear() int { if this.IsEmpty(){ return -1 } return this.Queue[ (this.Tail-1+this.size)%this.size ]}func (this *MyCircularQueue) IsEmpty() bool { return this.head == this.Tail}func (this *MyCircularQueue) IsFull() bool { if (this.Tail + 1)%this.size == this.head { return true } return false}/** * 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(); */ 总结 以上是内存溢出为你收集整理的Go Rust解题——使用[ ]int 固定长度数组实现循环队列全部内容,希望文章能够帮你解决Go Rust解题——使用[ ]int 固定长度数组实现循环队列所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)