Skip to content

Commit e706727

Browse files
Merge pull request #261 from Shivam-Yogi/main
Added queue using LL and radix sort programs.
2 parents 3076f77 + 9abfd8c commit e706727

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

Queue.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Queue:
2+
arr = []
3+
def enqueue(self,item):
4+
self.arr.append(item)
5+
6+
def dequeue(self):
7+
if len(self.arr) > 0:
8+
ditem = self.arr[0]
9+
del self.arr[0]
10+
return ditem
11+
else:
12+
return #queue is empty
13+
14+
def dispaly(self):
15+
print(self.arr)
16+
17+
x = Queue() # Creating object of queue class
18+
x.enqueue(1)
19+
x.enqueue(2)
20+
x.dispaly() # arr = [1,2]
21+
x.dequeue() # Deleting the first element of the queue.
22+
x.dispaly() # arr = [2]
23+
print(x.dequeue()) # 2
24+
print(x.dequeue()) # None(because queue is already empty)

Queue_using_LL.py

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class Node:
2+
def __init__(self, data = None):
3+
self.data = data
4+
self.next = None
5+
6+
class Queue:
7+
def __init__(self):
8+
self.head = None
9+
self.last = None
10+
11+
def enqueue(self, data):
12+
if not self.last:
13+
self.head = Node(data)
14+
self.last = self.head
15+
else:
16+
self.last.next = Node(data)
17+
self.last = self.last.next
18+
19+
def dequeue(self):
20+
if not self.head:
21+
return None
22+
val = self.head.data
23+
self.head = self.head.next
24+
return val
25+
26+
def display(self):
27+
temp = self.head
28+
while temp != None:
29+
print(temp.data)
30+
temp = temp.next
31+
32+
x = Queue() # Creating object of queue class
33+
x.enqueue(1) # Add 1 to the queue
34+
x.enqueue(2)# Add 2 to the queue
35+
x.display() # 1 => 2
36+
print(x.dequeue()) # Deleting the first element of the queue.
37+
x.display() # 2
38+
print(x.dequeue()) # 2
39+
print(x.dequeue()) # None(because queue is already empty)

Radix_sort.py

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Radix sort in Python
2+
# Using counting sort to sort the elements in the basis of significant places
3+
def countingSort(array, place):
4+
size = len(array)
5+
output = [0] * size
6+
count = [0] * 10
7+
8+
# Calculate count of elements
9+
for i in range(0, size):
10+
index = array[i] // place
11+
count[index % 10] += 1
12+
13+
# Calculate cumulative count
14+
for i in range(1, 10):
15+
count[i] += count[i - 1]
16+
17+
# Place the elements in sorted order
18+
i = size - 1
19+
while i >= 0:
20+
index = array[i] // place
21+
output[count[index % 10] - 1] = array[i]
22+
count[index % 10] -= 1
23+
i -= 1
24+
25+
for i in range(0, size):
26+
array[i] = output[i]
27+
28+
29+
# Main function to implement radix sort
30+
def radixSort(array):
31+
# Get maximum element
32+
max_element = max(array)
33+
34+
# Apply counting sort to sort elements based on place value.
35+
place = 1
36+
while max_element // place > 0:
37+
countingSort(array, place)
38+
place *= 10
39+
40+
41+
data = [121, 432, 564, 23, 1, 45, 788]
42+
radixSort(data)
43+
print(data)

0 commit comments

Comments
 (0)