Cidr4 merge algorithm #5

Merged
PavelPatsey merged 91 commits from CIDR4_merge_algorithm into main 2025-01-27 22:05:39 +03:00
Showing only changes of commit 303ddee08f - Show all commits
+8 -10
View File
6
@@ -125,23 +125,21 @@ def lift_lonely_node(nodes: list[Node], singles: list[Node]) -> list[Node]:
if parent[2] < min_parent[2]: if parent[2] < min_parent[2]:
min_single, min_parent = node, parent min_single, min_parent = node, parent
new_nodes = [x for x in nodes] nodes.remove(min_single)
new_nodes.remove(min_single) nodes.append(min_parent)
new_nodes.append(min_parent) nodes = sort_nodes(nodes)
new_nodes = sort_nodes(new_nodes) return nodes
return new_nodes
def merge_neighbors( def merge_neighbors(
nodes: list[Node], neighbours: list[tuple[Node, Node]] nodes: list[Node], neighbours: list[tuple[Node, Node]]
) -> list[Node]: ) -> list[Node]:
new_nodes = [x for x in nodes]
for a, b in neighbours: for a, b in neighbours:
parent = make_parent(a, b) parent = make_parent(a, b)
new_nodes.remove(a) nodes.remove(a)
new_nodes.remove(b) nodes.remove(b)
new_nodes.append(parent) nodes.append(parent)
return sort_nodes(new_nodes) return sort_nodes(nodes)
def find_neighbours_singles(groups: defaultdict) -> tuple[list, list]: def find_neighbours_singles(groups: defaultdict) -> tuple[list, list]: