@@ -26,29 +26,31 @@ def __str__(self):
2626 result += str (element ) + '\n '
2727 return result [:- 1 ] + '\n ------'
2828
29- class ArrayQueue (AbstractStack ):
29+ class ArrayQueue (AbstractQueue ):
3030 def __init__ (self , size = 10 ):
3131 """
3232 Initialize python List with size of 10 or user given input.
3333 Python List type is a dynamic array, so we have to restrict its
3434 dynamic nature to make it work like a static array.
3535 """
36- AbstractStack .__init__ (self )
36+ AbstractQueue .__init__ (self )
3737 self .array = [None ] * size
3838 self .front = 0
3939 self .rear = 0
4040
4141 def enqueue (self , value ):
42- if self .top == len (self .array ):
42+ if self .rear == len (self .array ):
4343 self .expand ()
44- self .array [self .top ] = value
44+ self .array [self .rear ] = value
45+ self .rear += 1
4546 self .top += 1
4647
4748 def dequeue (self ):
4849 if self .isEmpty ():
49- raise IndexError ("stack is empty" )
50- value = self .array [self .top - 1 ]
51- self .array [self .top - 1 ] = None
50+ raise IndexError ("Queue is empty" )
51+ value = self .array [self .front ]
52+ self .array [self .front ] = None
53+ self .front -= 1
5254 self .top -= 1
5355 return value
5456
@@ -63,7 +65,7 @@ def expand(self):
6365 self .array = new_array
6466
6567 def __iter__ (self ):
66- probe = self .top - 1
68+ probe = self .rear
6769 while True :
6870 if probe < 0 :
6971 raise StopIteration
@@ -75,40 +77,39 @@ def __init__(self, value):
7577 self .value = value
7678 self .next = None
7779
78- class LinkedListQueue (AbstractStack ):
80+ class LinkedListQueue (AbstractQueue ):
7981 def __init__ (self ):
8082 AbstractQueue .__init__ (self )
8183 self .front = None
8284 self .rear = None
8385
8486 def enqueue (self , value ):
8587 node = QueueNode (value )
86- if not front :
88+ if not self . front :
8789 self .front = node
8890 self .rear = node
89- else :
90- self .rear .next = node
91- self .rear = node
91+ node .next = self .rear
92+ self .rear = node
9293 self .top += 1
9394
9495 def dequeue (self ):
9596 if self .isEmpty ():
9697 raise IndexError ("Queue is empty" )
9798 value = self .front .value
9899 if self .front is self .rear :
99- self .rear = None
100+ self .front = None
100101 self .front = self .front .next
101102 self .top -= 1
102103 return value
103104
104105 def __iter__ (self ):
105- probe = self .head
106+ probe = self .rear
106107 while True :
107108 if probe is None :
108109 raise StopIteration
109110 yield probe .value
110111 probe = probe .next
111112
112- class HeapPriorityQueue (AbstractStack ):
113+ class HeapPriorityQueue (AbstractQueue ):
113114 def __init__ (self ):
114115 pass
0 commit comments