forked from larissalages/code_problems
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueue.py
More file actions
61 lines (50 loc) · 1.14 KB
/
queue.py
File metadata and controls
61 lines (50 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import logging
class Node:
def __init__(self, value):
self.value = value
self.next = None
class Queue:
def __init__(self):
self.first = None
self.last = None
def add(self, value):
tmp = Node(value)
if self.last:
self.last.next = tmp
self.last = tmp
if not self.first:
self.first = tmp
def remove(self):
if not self.first:
logging.warning('Queue is empty!')
return
value = self.first.value
self.first = self.first.next
return value
def peek(self):
if not self.first:
logging.warning('Queue is empty!')
return
return self.first.value
def isEmpty(self):
return self.first is None
def print(self):
p = self.first
while p:
print(p.value)
p = p.next
if __name__ == '__main__':
q = Queue()
print(q.isEmpty())
q.add(1)
q.add(2)
q.add(3)
q.add(4)
q.add(5)
print(q.isEmpty())
print(q.peek())
print('------')
q.print()
q.remove()
print('------')
q.print()