Remove file-level flake8 suppression by Cjkjvfnby · Pull Request #7844 · TheAlgorithms/Python · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions DIRECTORY.md
50 changes: 25 additions & 25 deletions data_structures/heap/binomial_heap.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# flake8: noqa

"""
Binomial Heap
Reference: Advanced Data Structures, Peter Brass
Expand All @@ -22,7 +20,7 @@ def __init__(self, val):
self.right = None
self.parent = None

def mergeTrees(self, other):
def merge_trees(self, other):
"""
In-place merge of two binomial trees of equal size.
Returns the root of the resulting tree
Expand Down Expand Up @@ -75,9 +73,8 @@ class BinomialHeap:
30

Deleting - delete() test
>>> for i in range(25):
... print(first_heap.deleteMin(), end=" ")
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
>>> [first_heap.delete_min() for _ in range(20)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Create a new Heap
>>> second_heap = BinomialHeap()
Expand All @@ -97,8 +94,8 @@ class BinomialHeap:
# # # #

preOrder() test
>>> second_heap.preOrder()
[(17, 0), ('#', 1), (31, 1), (20, 2), ('#', 3), ('#', 3), (34, 2), ('#', 3), ('#', 3)]
>>> " ".join(str(x) for x in second_heap.pre_order())
"(17, 0) ('#', 1) (31, 1) (20, 2) ('#', 3) ('#', 3) (34, 2) ('#', 3) ('#', 3)"

printing Heap - __str__() test
>>> print(second_heap)
Expand All @@ -113,22 +110,25 @@ class BinomialHeap:
---#

mergeHeaps() test
>>> merged = second_heap.mergeHeaps(first_heap)
>>>
>>> merged = second_heap.merge_heaps(first_heap)
>>> merged.peek()
17

values in merged heap; (merge is inplace)
>>> while not first_heap.isEmpty():
... print(first_heap.deleteMin(), end=" ")
17 20 25 26 27 28 29 31 34
>>> results = []
>>> while not first_heap.is_empty():
... results.append(first_heap.delete_min())
>>> results
[17, 20, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 34]
"""

def __init__(self, bottom_root=None, min_node=None, heap_size=0):
self.size = heap_size
self.bottom_root = bottom_root
self.min_node = min_node

def mergeHeaps(self, other):
def merge_heaps(self, other):
"""
In-place merge of two binomial heaps.
Both of them become the resulting merged heap
Expand Down Expand Up @@ -180,7 +180,7 @@ def mergeHeaps(self, other):
next_node = i.parent.parent

# Merging trees
i = i.mergeTrees(i.parent)
i = i.merge_trees(i.parent)

# Updating links
i.left = previous_node
Expand Down Expand Up @@ -238,7 +238,7 @@ def insert(self, val):
next_node = self.bottom_root.parent.parent

# Merge
self.bottom_root = self.bottom_root.mergeTrees(self.bottom_root.parent)
self.bottom_root = self.bottom_root.merge_trees(self.bottom_root.parent)

# Update Links
self.bottom_root.parent = next_node
Expand All @@ -252,10 +252,10 @@ def peek(self):
"""
return self.min_node.val

def isEmpty(self):
def is_empty(self):
return self.size == 0

def deleteMin(self):
def delete_min(self):
"""
delete min element and return it
"""
Expand Down Expand Up @@ -317,7 +317,7 @@ def deleteMin(self):
return min_value
# Remaining cases
# Construct heap of right subtree
newHeap = BinomialHeap(
new_heap = BinomialHeap(
bottom_root=bottom_of_new, min_node=min_of_new, heap_size=size_of_new
)

Expand Down Expand Up @@ -354,11 +354,11 @@ def deleteMin(self):
self.min_node = i
i = i.parent
# Merge heaps
self.mergeHeaps(newHeap)
self.merge_heaps(new_heap)

return min_value

def preOrder(self):
def pre_order(self):
"""
Returns the Pre-order representation of the heap including
values of nodes plus their level distance from the root;
Expand All @@ -369,9 +369,9 @@ def preOrder(self):
while top_root.parent:
top_root = top_root.parent
# preorder
heap_preOrder = []
self.__traversal(top_root, heap_preOrder)
return heap_preOrder
heap_pre_order = []
self.__traversal(top_root, heap_pre_order)
return heap_pre_order

def __traversal(self, curr_node, preorder, level=0):
"""
Expand All @@ -389,9 +389,9 @@ def __str__(self):
Overwriting str for a pre-order print of nodes in heap;
Performance is poor, so use only for small examples
"""
if self.isEmpty():
if self.is_empty():
return ""
preorder_heap = self.preOrder()
preorder_heap = self.pre_order()

return "\n".join(("-" * level + str(value)) for value, level in preorder_heap)

Expand Down
8 changes: 3 additions & 5 deletions other/activity_selection.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# flake8: noqa

"""The following implementation assumes that the activities
are already sorted according to their finish time"""

Expand All @@ -10,11 +8,11 @@
# finish[] --> An array that contains finish time of all activities


def printMaxActivities(start: list[int], finish: list[int]) -> None:
def print_max_activities(start: list[int], finish: list[int]) -> None:
"""
>>> start = [1, 3, 0, 5, 8, 5]
>>> finish = [2, 4, 6, 7, 9, 9]
>>> printMaxActivities(start, finish)
>>> print_max_activities(start, finish)
The following activities are selected:
0,1,3,4,
"""
Expand Down Expand Up @@ -43,4 +41,4 @@ def printMaxActivities(start: list[int], finish: list[int]) -> None:

start = [1, 3, 0, 5, 8, 5]
finish = [2, 4, 6, 7, 9, 9]
printMaxActivities(start, finish)
print_max_activities(start, finish)
10 changes: 4 additions & 6 deletions searches/binary_tree_traversal.py