기본적으로 구현된게 있는지 궁금합니다. <div><br></div> <div>그리고 잘 모르겠어서 찾아보면서 했는데</div> <div>혹시 이 코드에서 필요없는 부분이 뭘까요</div> <div><br></div> <div>제가 봐도 난잡하기는 한데 원래 C++에서 포인터로 구현하던걸 비슷하게 따라하려니 너무 헷갈리네요</div> <div><br></div> <div><div>global root</div> <div>root = None</div> <div>class Tree: </div> <div> def __init__(self, data, left_child=None, right_child=None, left_data = None, right_data = None): </div> <div> self.data = data</div> <div> self.left_child = left_child </div> <div> self.right_child = right_child</div> <div> self.left_data = left_data</div> <div> self.right_data = right_data</div> <div><br></div> <div><br></div> <div>def search_tree(tree, list_of_tree):</div> <div> for i in range(len(list_of_tree)):</div> <div> if tree.data == list_of_tree[i].left_data:</div> <div> list_of_tree[i].left_child = tree</div> <div> break</div> <div> elif tree.data == list_of_tree[i].right_data:</div> <div> list_of_tree[i].right_child = tree</div> <div> break</div> <div> else:</div> <div> continue</div> <div><br></div> <div><br></div> <div><br></div> <div>def preorder_traverse(tree):</div> <div> if tree == None: </div> <div> return</div> <div> print(tree.data,end='')</div> <div> preorder_traverse(tree.left_child)</div> <div> preorder_traverse(tree.right_child)</div> <div> </div> <div>def inorder_traverse(tree):</div> <div> if tree == None: </div> <div> return</div> <div> inorder_traverse(tree.left_child)</div> <div> print(tree.data,end='')</div> <div> inorder_traverse(tree.right_child)</div> <div> </div> <div>def postorder_traverse(tree):</div> <div> if tree == None: </div> <div> return</div> <div> postorder_traverse(tree.left_child)</div> <div> postorder_traverse(tree.right_child)</div> <div> print(tree.data,end='')</div> <div>#a = [int(x) for x in input().split()]</div> <div><br></div> <div><br></div> <div>number_of_tree = int(input())</div> <div>treelist = [Tree(0) for i in range(number_of_tree)]</div> <div>input_data = [str(x) for x in input().split()]</div> <div>treelist[0].data = input_data[0]</div> <div>treelist[0].left_data = input_data[1]</div> <div>treelist[0].right_data = input_data[2]</div> <div>root = treelist[0]</div> <div>for i in range(1,number_of_tree):</div> <div> a = [str(x) for x in input().split()]</div> <div> for j in range(3):</div> <div> if a[j] == '.':</div> <div> a[j] = None</div> <div> treelist[i].data = a[0] </div> <div> treelist[i].left_data = a[1]</div> <div> treelist[i].right_data = a[2] </div> <div> search_tree(treelist[i],treelist)</div> <div><br></div> <div>preorder_traverse(root);print()</div> <div>inorder_traverse(root);print()</div> <div>postorder_traverse(root);print()</div> <div># example of input and output</div> <div># 7</div> <div># A B C</div> <div># B D .</div> <div># C E F</div> <div># E . .</div> <div># F . G</div> <div># D . .</div> <div># G . .</div> <div><br></div> <div># ABDCEFG</div> <div># DBAECFG</div> <div># DBEGFCA</div> <div><br></div> <div><br></div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.