File tree Expand file tree Collapse file tree 2 files changed +63
-0
lines changed 
src/abstract_structures/queues Expand file tree Collapse file tree 2 files changed +63
-0
lines changed Original file line number Diff line number Diff line change 1+ #!/usr/bin/env python 
2+ 
3+ __author__  =  "bt3" 
4+ 
5+ 
6+ class  Queue (object ):
7+ 
8+     def  __init__ (self ):
9+         self .in_stack  =  []
10+         self .out_stack  =  []
11+ 
12+     def  _transfer (self ):
13+         while  self .in_stack :
14+             self .out_stack .append (self .in_stack .pop ())
15+ 
16+     def  enqueue (self , item ):
17+         return  self .in_stack .append (item )
18+ 
19+     def  dequeue (self ):
20+         if  not  self .out_stack :
21+             self ._transfer ()
22+         if  self .out_stack :
23+             return  self .out_stack .pop ()
24+         else :
25+             return  "Queue empty!" 
26+ 
27+     def  size (self ):
28+         return  len (self .in_stack ) +  len (self .out_stack )
29+ 
30+     def  peek (self ):
31+         if  not  self .out_stack :
32+             self ._transfer ()
33+         if  self .out_stack :
34+             return  self .out_stack [- 1 ]
35+         else :
36+             return  "Queue empty!" 
37+ 
38+     def  __repr__ (self ):
39+         if  not  self .out_stack :
40+             self ._transfer ()
41+         if  self .out_stack :
42+             return  '{}' .format (self .out_stack )
43+         else :
44+             return  "Queue empty!" 
45+ 
46+     def  isEmpty (self ):
47+         return  not  (bool (self .in_stack ) or  bool (self .out_stack ))
48+ 
49+ 
50+ if  __name__  ==  '__main__' :
51+     queue  =  Queue ()
52+     print ("Is the queue empty? " , queue .isEmpty ())
53+     print ("Adding 0 to 10 in the queue..." )
54+     for  i  in  range (10 ):
55+         queue .enqueue (i )
56+     print ("Queue size: " , queue .size ())
57+     print ("Queue peek : " , queue .peek ())
58+     print ("Dequeue..." , queue .dequeue ())
59+     print ("Queue peek: " , queue .peek ())
60+     print ("Is the queue empty? " , queue .isEmpty ())
61+ 
62+     print ("Printing the queue..." )
63+     print (queue )
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments