fork download
  1. class queuearray:
  2. DefaultCapacity=10
  3. def __init__(self):
  4. #create an empty list of nones
  5. self.data=[None]*self.DefaultCapacity
  6. self.size=0
  7. self.front=0
  8. def __len__(self):
  9. return self.size
  10. def is_empty(self):
  11. return self.size==0
  12. def first(self):
  13. if self.is_empty():
  14. raise Exception('Queue Is Empty')
  15. return self.data[self.front]
  16. def dequeue(self):
  17. if self.is_empty():
  18. raise Exception('Queue Is Empty')
  19. answer=self.data[self.front]
  20. self.data[self.front]=None
  21. self.front=(self.front+1)%len(self.data)
  22. self.size-=1
  23. return answer
  24. def enqueue(self,e):
  25. if self.size==self.DefaultCapacity:
  26. self.resize(2*len(self.data))
  27. aval=(self.front+self.size)%len(self.data)
  28. self.data[aval]=e
  29. self.size+=1
  30. def resize(self,cap):
  31. old=self.data
  32. #build a new list of anew size have nones
  33. self.data=[None]*cap
  34. walk=self.front
  35. for k in range(self.size):
  36. self.data[k]=old[walk]
  37. walk=(1+walk)%len(old)
  38. self.front=0
  39.  
  40. s=queuearray()
  41. #s.dequeue()
  42. s.enqueue(5)
  43. print(s.first())
  44. s.enqueue(30)
  45. s.enqueue(40)
  46. print(s.first())
  47.  
Success #stdin #stdout 0.01s 7236KB
stdin
Standard input is empty
stdout
5
5