From d591470a0ddf42bd0ac5d8de77b5908e7835562d Mon Sep 17 00:00:00 2001 From: Pavel Patsey Date: Wed, 22 Jan 2025 22:04:47 +0300 Subject: [PATCH] correct the algorithm plan --- vpn_manager/cidr4_merge/cidr4_merger.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/vpn_manager/cidr4_merge/cidr4_merger.py b/vpn_manager/cidr4_merge/cidr4_merger.py index 77f7212..4104d62 100644 --- a/vpn_manager/cidr4_merge/cidr4_merger.py +++ b/vpn_manager/cidr4_merge/cidr4_merger.py @@ -50,10 +50,12 @@ def make_cidr4(ip, mask_len) -> str: def merge_nodes(nodes_to_merge: list[Node], required_len: int) -> list[Node]: nodes = [x for x in nodes_to_merge] - # преобразовать список нод в список туплов: родитель (ip, mask len, added ips), d_ip = кол-во добавляемых адресов - # найти подходящего родителя (с минимальным значением d_ip), затем мержить два узла: - # 1) если в соседних ветках - # 2) если один из узлов находится в подсети у другого + # Преобразовать список нод в список туплов: родитель (ip, mask len), кол-во добавляемых адресов d_ip + # найти подходящего родителя (с минимальным значением d_ip) и индекс + # затем мержить два узла: + # - т.е. удалить элемент с индексом i + # - еще раз удалить элемент с индексом i + # - добавить родителя перед элементом с индексом i # повторить пока не достигнем нужного кол-ва узлов return nodes