Python利用列表[]实现一个队列:
class Queue:
"""description of class"""
"Constructor"
def __init__(self,size):
self.maxsize=size
self.__data=range(0,size)
self.front=-1
self.rear=-1
"Get Indexer"
def __getitem__(self,index):
return self.__data[index]
"Set Indexer"
def __setitem__(self,index,value):
self.__data[index]=value
"Get Length"
def GetLength(self):
return (self.rear-self.front+self.maxsize)%maxsize
'Clear Container'
def Clear(self):
self.front=self.rear=-1
"Judge Empty"
def IsEmpty(self):
if(self.front==self.rear and self.front==-1):
return True
else:
return False
"Judge Full"
def IsFull(self):
if(self.rear==self.front and not self.IsEmpty()):
return True
else:
return False
"In Queue"
def In(self, item):
if(self.IsFull()):
print "Queue is full"
return
else:
self.rear+=1
self.rear%=self.maxsize
self.__data[self.rear]=item
"Out Queue"
def Out(self):
if(self.IsEmpty()):
print "Queue is empty"
return
else:
self.front+=1
self.front%=self.maxsize
frontvalue=self.__data[self.front]
if self.front==self.rear:
self.front=self.rear=-1
return frontvalue
"Get Front Item"
def GetFront(self):
if(self.IsEmpty()):
print "Queue is empty"
return
else:
return self.__data[(self.front+1)%self.maxsize]