등록인lhil008
등록/수정일07.11.13 / 07.11.13
문서분량2 페이지
다운로드0
구매평가
판매가격600원
Ⅰ. Iterative preorder 1. 전위순회의 방법 전위순회는...
Ⅰ. 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주일이내 환불요청 시 환불(재충전) 해드립니다.
(단, 단순 변심 및 실수로 인한 환불은 되지 않습
니다.)
· 파일이 열리지 않거나 브라우저 오류로 인해 다운
이 되지 않으면 고객센터로 문의바랍니다.
· 다운로드 받은 파일은 참고자료로 이용하셔야 하
며,자료의 활용에 대한 모든 책임은 다운로드 받은
회원님에게 있습니다.