def tree_generate(node_name, index, pos, dependency_list, visited_list, reverse=False): """Generating a tree from the node name given :type index: int :type pos: str :type visited_list: list :type node_name: str :type dependency_list: list """ node = Node(node_name, pos, index=index) visited_list += [index] kids_index_name_pos = [(d[1][0], d[1][1], d[1][2]) for d in dependency_list if d[0][0] == index] for x in kids_index_name_pos: if x in visited_list: node.value = 1 node.addkid(Node(label=x[1], index=x[0], pos=x[2])) else: node.addkid( tree_generate(x[1], x[0], x[2], dependency_list, visited_list)) visited_list += [x] else: if Node.get_children(node): node.value += sum([g.value for g in Node.get_children(node)]) # print node.label, node.value, node.pos node.children.sort(key=lambda x: x.label, reverse=reverse) return node
def tree_generate(node_name, index, pos, dependency_list, visited_list, reverse=False): """Generating a tree from the node name given :type index: int :type pos: str :type visited_list: list :type node_name: str :type dependency_list: list """ node = Node(node_name, pos, index=index) visited_list += [index] kids_index_name_pos = [(d[1][0], d[1][1], d[1][2]) for d in dependency_list if d[0][0] == index] for x in kids_index_name_pos: if x in visited_list: node.value = 1 node.addkid(Node(label=x[1], index=x[0], pos=x[2])) else: node.addkid(tree_generate(x[1], x[0], x[2], dependency_list, visited_list)) visited_list += [x] else: if Node.get_children(node): node.value += sum([g.value for g in Node.get_children(node)]) # print node.label, node.value, node.pos node.children.sort(key=lambda x: x.label, reverse=reverse) return node