队列:允许插入的一端为队头front,允许删除的一端为队尾rear,先进先出的原则。
顺序队列:sequential queue
队尾指针指示队尾元素在一维数组中的当前位置,队头指针指示队头元素在一维数组中当前位置的前一个位置,空队列self.front= self.rear = 0
链式队列:linked queue 不需要指定长度,一般不会产生队满
一个同时带有头指针和尾指针的单链表,头指针指向头结点,尾指针指向尾结点
class SequenceSqueue(object):
def __init__(self,maxsize):
self.maxsize = maxsize
self.data = [None for _ in range(maxsize)]
#self.data = list(None for x in range(maxsize))
self.front = 0
self.rear = 0
def isEmpty(self):
if self.front == self.rear:
print True
else:
print False
def getLength(self):
print self.rear - self.front
def En_Queue(self,x):
if self.rear < self.maxsize:
self.rear = self.rear + 1
self.data[self.rear] = x
else:
print 'queue is full!'
def init_queue(self):
element = input('please input a element,# for end:')
while element != '