Skip to content

Commit cded73c

Browse files
authored
Create priority.py
1 parent 463c2ff commit cded73c

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

Queues/Priority Queue/priority.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# To heapify
2+
def heapify(array, num, x):
3+
# Find the largest among root, left child and right child
4+
max = x
5+
left = 2 * x + 1
6+
right = 2 * x + 2
7+
8+
if left < num and array[x] < array[left]:
9+
max = left
10+
11+
if right < num and array[max] < array[right]:
12+
max = right
13+
14+
# If root is not largest, swap and continue heapifying
15+
if max != x:
16+
array[x], array[max] = array[max], array[x]
17+
heapify(array, num, max)
18+
19+
20+
# To insert an element
21+
def insert(nums, next):
22+
s = len(nums)
23+
if s == 0:
24+
nums.append(next)
25+
else:
26+
nums.append(next)
27+
for i in range((s // 2) - 1, -1, -1):
28+
heapify(nums, s, i)
29+
30+
31+
# To delete an element
32+
def delete(nums, n):
33+
s = len(nums)
34+
i = 0
35+
for i in range(0, s):
36+
if n == nums[i]:
37+
break
38+
39+
nums[i], nums[s - 1] = nums[s - 1], nums[i]
40+
41+
nums.remove(s - 1)
42+
43+
for i in range((len(nums) // 2) - 1, -1, -1):
44+
heapify(nums, len(nums), i)
45+
46+
47+
array = []
48+
49+
insert(array, 1)
50+
insert(array, 4)
51+
insert(array, 2)
52+
insert(array, 7)
53+
insert(array, 8)
54+
insert(array, 5)
55+
insert(array, 6)
56+
57+
print("Max-Heap array: " + str(array))
58+
59+
delete(array, 6)
60+
print("After deletion: " + str(array))

0 commit comments

Comments
 (0)