Skip to content

Commit 2d5fd10

Browse files
authored
Merge pull request joeyajames#11 from thomas545/master
Queues implementaion
2 parents 20b5937 + 8098344 commit 2d5fd10

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

Queues implementaion.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
2+
# implemented by Linked list
3+
class Node(object):
4+
def __init__(self, item = None):
5+
self.item = item
6+
self.next = None
7+
self.previous = None
8+
9+
10+
class Queue(object):
11+
def __init__(self):
12+
self.length = 0
13+
self.head = None
14+
self.tail = None
15+
16+
def enqueue(self, x):
17+
newNode = Node(x)
18+
if self.head == None:
19+
self.head = self.tail = newNode
20+
else:
21+
self.tail.next = newNode
22+
newNode.previous = self.tail
23+
self.tail = newNode
24+
self.length += 1
25+
26+
27+
def dequeue (self):
28+
item = self.head.item
29+
self.head = self.head.next
30+
self.length -= 1
31+
if self.length == 0:
32+
self.last = None
33+
return item
34+
35+
36+
#################################################
37+
38+
# implemented by array
39+
class Queue:
40+
def __init__(self):
41+
self.items = []
42+
43+
def is_empty(self):
44+
return self.items == []
45+
46+
def enqueue(self, data):
47+
self.items.append(data)
48+
49+
def dequeue(self):
50+
return self.items.pop(0)
51+
52+
def display(self):
53+
ar = []
54+
for i in self.items:
55+
ar.append(i)
56+
return ar
57+
58+
59+
60+
61+
62+
63+
64+
65+
66+
que = Queue()
67+
que.enqueue('google')
68+
que.enqueue('youtube')
69+
que.enqueue('udemy')
70+
que.enqueue('udacity')
71+
que.dequeue()
72+
que.dequeue()
73+
print(que.display())

0 commit comments

Comments
 (0)