Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 36c26d7

Browse files
Added Queue Code with Examples
1 parent 286646d commit 36c26d7

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

‎2_Queue/2_Queue.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class Que:
2+
def __init__(self) -> None:
3+
self.size = 0
4+
self.que = []
5+
6+
def enque(self, data):
7+
self.que.append(data)
8+
self.size += 1
9+
10+
def deque(self):
11+
if self.size > 0:
12+
data = self.que[0]
13+
del self.que[0]
14+
self.size -= 1
15+
return data
16+
else:
17+
print("Que is empty.")
18+
19+
def peek(self):
20+
return self.que[0]
21+
22+
def __str__(self):
23+
return str(self.que)
24+
25+
26+
if __name__ =="__main__":
27+
que = Que()
28+
29+
numbers = [5,15,25,35,45,55, 25, 65]
30+
31+
for num in numbers:
32+
que.enque(num)
33+
34+
print(f"Que: {que}")
35+
36+
print(f"Peek: {que.peek()}")
37+
38+
for i in range(11):
39+
print(f"Pop: {que.deque()}")

‎2_Queue/2b_Queue.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
'''
2+
PROBLEM:
3+
4+
TODO: Write a program to print binary numbers from 1 to 10 using Queue. Use Queue class implemented in main
5+
tutorial.
6+
Binary sequence should look like,
7+
```
8+
1
9+
10
10+
11
11+
100
12+
101
13+
110
14+
111
15+
1000
16+
1001
17+
1010
18+
```
19+
Hint: Notice a pattern above. After `1`, the 2nd and 3rd number is 1+0 and 1+1.
20+
4th and 5th number are 2nd number (i.e. 10) + 0 and 2nd number (i.e. 10) + 1.
21+
'''
22+
23+
class Que:
24+
def __init__(self) -> None:
25+
self.size = 0
26+
self.que = []
27+
28+
def enque(self, data):
29+
self.que.append(data)
30+
self.size += 1
31+
32+
def deque(self):
33+
if self.size > 0:
34+
data = self.que[0]
35+
del self.que[0]
36+
self.size -= 1
37+
return data
38+
else:
39+
print("Que is empty.")
40+
41+
def peek(self):
42+
return self.que[0]
43+
44+
def __str__(self):
45+
return str(self.que)
46+
47+
def print_binary(limit=10):
48+
que = Que()
49+
count = 1
50+
binary = ['1']
51+
que.enque(binary[0])
52+
while count < limit:
53+
deque = que.deque()
54+
new_num1 = deque + '0'; que.enque(new_num1); binary.append(new_num1)
55+
new_num2 = deque + '1'; que.enque(new_num2); binary.append(new_num2)
56+
57+
count += 2
58+
59+
return binary[:limit]
60+
61+
62+
63+
if __name__ =="__main__":
64+
print(print_binary())

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /