本文主要是介绍循环队列的实现及应用——桶排序bucket_sort、基数排序radix_sort,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、循环队列的实现
代码解释
1、完成初始化
2、定义方法
3、测试实例
4、完整代码
class AQueue:def __init__(self, size=10):self.__mSize = sizeself.__front=0self.__rear = 0self.__listArray = [None] * size#清空元素def clear(self):self.__front = 0self.__rear = 0for i in range(self.__mSize):self.__listArray[i]=None# 入队操作def enqueue(self, item):if not self.is_full():self.__rear=(self.__rear+1)%self.__mSizeself.__listArray[self.__rear]=itemelif self.is_full():raise ValueError("Queue is Full.")# 出队操作def dequeue(self):if not self.is_empty():self.__front=(self.__front+1)%self.__mSizeself.item=self.__listArray[self.__front]self.__listArray[self.__front]=Nonereturn self.itemelif self.is_empty():raise ValueError("Queue is empty.")# 判空,检查队列是否为空def is_empty(self):return self.__front==self.__rear# 判满,注意并不是所有的位置都有元素才是满,当只有一个是None时就满了,有点像链表的哑结点def is_full(self):return ((self.__rear+1)%self.__mSize==self.__front)def __repr__(self): # 显示队列中所有元素,数组切片左闭右开return str(self.__listArray[:self.__mSize])if __name__=='__main__':queue=AQueue(5)queue.enqueue(1)print(queue)print(queue.dequeue())queue.enqueue(2
这篇关于循环队列的实现及应用——桶排序bucket_sort、基数排序radix_sort的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!