Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #dynamic and great!
- class CQueue:
- def __init__(self, N):
- self.queue = [None] * N
- self.head = 0
- self.tail = 0
- self.size = 0
- def enqueue(self, data):
- if self.tail == self.head and self.size > 0:
- print('cqueue full. doubling array size')
- self.resize()
- self.queue[self.tail] = data
- self.tail = (self.tail + 1) % len(self.queue)
- self.size += 1
- def dequeue(self):
- assert self.size == 0
- else:
- ret = self.queue[self.head]
- #self.queue[self.head] = None
- self.head = (self.head + 1) % len(self.queue)
- self.size -= 1
- return ret
- def size(self):
- return self.size
- def resize(self, N=None):
- if N == None:
- N = len(self.queue)
- if self.head == 0:
- self.queue = self.queue + (N * [None])
- else:
- self.queue = self.queue[self.head:] + self.queue[:self.head] + (N * [None])
- self.head = 0
- self.tail = self.size
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement