diff --git a/python_arborist.py b/python_arborist.py index 8485a5ea3f63c92d69da27191687d5abe81014db..f486236f1e7d8a08529595905551708502ea154d 100644 --- a/python_arborist.py +++ b/python_arborist.py @@ -330,25 +330,29 @@ def deserializer(serialized_array): for sub_idx in range(physical_idx + 2, physical_idx + 2 + number_subnodes): if (serialized_array[sub_idx] & top_bit != 0): # index reference backreference_physical_index = serialized_array[sub_idx] - top_bit - print(" BACKREFERENCE_INDEX IS", backreference_physical_index) - - #this_subnode = list_of_nodes[serialized_array] - subnodes_array.append(serialized_array[sub_idx]) + backreference_logical_index = physical_to_logical[backreference_physical_index] + print(" BACKREFERENCE PHYS INDEX IS", backreference_physical_index) + print(" BACKREFERENCE LOGICAL INDEX IS", backreference_logical_index) + #this_subnode = list_of_nodes[serialized_array] + subnodes_array.append(list_of_nodes[backreference_logical_index]) else: # new subnode altogether print(" ABINITIO SUBNODE IS", serialized_array[sub_idx]) - subnodes_array.append(serialized_array[sub_idx]) + subnodes_array.append(TreeNode(serialized_array[sub_idx],[])) print(" AND THESE SUBNODES ARE:",subnodes_array) print("") new_node = TreeNode(new_element, subnodes_array) + + list_of_nodes.append(new_node) + physical_to_logical[physical_idx] = logical_idx physical_idx += 2 + number_subnodes logical_idx += 1 print(physical_to_logical) - return new_node +