Skip to content

Commit ea54066

Browse files
committed
searching longest grid
GridNode now is subclass of anytree.Node added calculating grid length
1 parent 2298a95 commit ea54066

File tree

2 files changed

+61
-24
lines changed

2 files changed

+61
-24
lines changed

.idea/workspace.xml

+40-18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

main.py

+21-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
from anytree import Node, RenderTree
1+
from anytree import Node, RenderTree, Walker
22

33

44
class Grid:
55
def __init__(self, power):
66
self.transformer_power = power
77
self.nodes = [GridNode("[00]", 0, power, None)]
8-
self.root = self.nodes[0].node
8+
self.root = self.nodes[0]
99
self.num_nodes = 0
1010

1111
def add_node(self, length, power, parent_id):
@@ -14,15 +14,21 @@ def add_node(self, length, power, parent_id):
1414
name = "[" + str(self.num_nodes) + "]"
1515
else:
1616
name = "[0" + str(self.num_nodes) + "]"
17-
self.nodes.append(GridNode(name, length, power, self.nodes[parent_id].node))
17+
self.nodes.append(GridNode(name, length, power, self.nodes[parent_id]))
1818

1919

20-
class GridNode:
20+
class GridNode(Node):
2121
def __init__(self, name, length, power, parent):
22-
self.node = Node(name, parent=parent)
22+
super().__init__(name, parent)
2323
self.length = length
2424
self.power = power
2525

26+
def total_length(self):
27+
if self.parent.name == "[00]" or self.name == "[00]":
28+
return self.length
29+
else:
30+
return self.length + self.parent.total_length()
31+
2632

2733
def get_kj(owners, is_city):
2834
"""
@@ -84,4 +90,13 @@ def evaluate_grid_current(owners, is_city):
8490
if choice[0] == "exit":
8591
break
8692
elif choice[0] == "add":
87-
grid.add_node(choice[2], choice[3], int(choice[1]))
93+
grid.add_node(int(choice[2]), int(choice[3]), int(choice[1]))
94+
95+
grid_len = 0
96+
for node in grid.nodes:
97+
if node.is_leaf:
98+
print(node.total_length())
99+
if node.total_length() > grid_len:
100+
grid_len = node.total_length()
101+
102+
print(grid_len)

0 commit comments

Comments
 (0)