1
+ # Node Class
2
+ class _Node :
3
+ __slots__ = '_element' , '_next'
4
+
5
+ def __init__ (self , element , next ):
6
+ self ._element = element
7
+ self ._next = next
8
+
9
+ # LinkedListQueue Class
10
+
11
+ class LinkedListQueue :
12
+ def __init__ (self ):
13
+ self ._front = None
14
+ self ._rear = None
15
+ self ._size = 0
16
+
17
+ def __len__ (self ):
18
+ return self ._size
19
+
20
+ def is_empty (self ):
21
+ return self ._size == 0
22
+
23
+ def enqueue (self , element ):
24
+ newest = _Node (element , None )
25
+ if self .is_empty ():
26
+ self ._front = newest
27
+ else :
28
+ self ._rear ._next = newest
29
+ self ._rear = newest
30
+ self ._size += 1
31
+
32
+ def dequeue (self ):
33
+ if self .is_empty ():
34
+ print ('Queue is Empty' )
35
+ return
36
+ e = self ._front ._element
37
+ self ._front = self ._front ._next
38
+ self ._size -= 1
39
+ if self .is_empty ():
40
+ self ._rear = None
41
+ return e
42
+
43
+ def peek (self ):
44
+ if self .is_empty ():
45
+ print ('Queue is Empty' )
46
+ return
47
+ return self ._front ._element
48
+
49
+ def display (self ):
50
+ p = self ._front
51
+ while p :
52
+ print (p ._element , end = ' <-- ' )
53
+ p = p ._next
54
+ print ()
0 commit comments