Ⅰ. Iterative preorder 1. 전위순회의 방법 전위순회는 부모노드-왼쪽자식-오른쪽자식 순으로 트리를 순회하는 것으로서 recursive로 구현하면 아래와 같이 표현할 수 있다. void pre_order(treenode t){ if(t){ cout t→data ` n`; pre_order(t→leftChild); pre_order(t→rigntChild); } } 2. Iterative preorder의 구현 전위순회는 스택을 사용하여 비재귀적으로 구현이 가능한데, 방문할 노드는 스택에서 delete하여 얻을 수 있으며, 앞으로 방문할 노드들은 스택에 add하여 주면 된다. 이를 알고리즘으로 표현하면 아래와 같다. void iter_preorder(treenode t){ Stack의 초기화; Stack.Add(t); Stack에 노드를 삽입한다. while(Stack이 비어있지 않은 경우){ t = Stack.Delete(); 방문할 노드를 스택에서 받아온다. if(t){ 방문할 노드가 존재하는 경우 순회를 계속한다. cout t→data ` n`; 노드의 데이터를 출력 Stack.Add(t→rightChild); 부모-왼쪽-오른쪽 순으로 방문하므로 오른쪽 삽입 후 Stack.Add(t→leftChild); 왼쪽 노드를 삽입한다. } end of if } end of while } 위 알고리즘과 같이 전위순회를 구현하면, 스택에는 항상 부모-왼쪽-오른쪽 노드 순으로 삽입되어 있으므로 스택이 비어있을 때까지 반복하여 삭제 삽입 동작을 수행하면, 전위순회를 비재귀적으로 수행할 수 있게 되는 것이다. Ⅱ. Iterative postorder 1. 후위순회의 방법 후위순회는 왼쪽자식-오른쪽자식-부모노드 순으로 트리를 순회하는 것으로서 recursive로 구현하면 아래와 같은 알고리즘으...
· 해피레포트는 다운로드 받은 파일에 문제가 있을 경우(손상된 파일/설명과 다른자료/중복자료 등) 1주일이내 환불요청 시 환불(재충전) 해드립니다.
(단, 단순 변심 및 실수로 인한 환불은 되지 않습니다.)
· 파일이 열리지 않거나 브라우저 오류로 인해 다운이 되지 않으면 고객센터로 문의바랍니다.
· 다운로드 받은 파일은 참고자료로 이용하셔야 하며,자료의 활용에 대한 모든 책임은 다운로드 받은 회원님에게 있습니다.
저작권안내
보고서 내용중의 의견 및 입장은 당사와 무관하며, 그 내용의 진위여부도 당사는 보증하지 않습니다.
보고서의 저작권 및 모든 법적 책임은 등록인에게 있으며, 무단전재 및 재배포를 금합니다.
저작권 문제 발생시 원저작권자의 입장에서 해결해드리고 있습니다. 저작권침해신고 바로가기