[C++] 반복적트리순회 알고리즘 2
페이지 정보
작성일 23-02-04 04:38
본문
Download : [C++] 반복적트리순회 알고리즘.hwp
}
다.
Ⅰ. Iterative preorder 1. 전위순회의 방법 전위순회는...
while(Stack이 비어있지 않은 경우){
설명
전위순회는 부모노드-왼쪽자식-오른쪽자식 순으로 트리를 순회하는 것으로서 recursive로 구현하면 아래와 같이 표현이 된다 아
} end of if
cout t→data ` n`; 노드의 데이터를 출력
Ⅱ. Iterative postorder
void pre_order(treenode t){
}
위 알고리즘과 같이 전위순회를 구현하면, 스택에는 항상 부모-왼쪽-오른쪽 노드 순으로 삽입되어 있으므로 스택이 비어있을 때까지 반복하여 삭제 삽입 동작을 수행하면, 전위순회를 비재귀적으로 수행할 수 있게 되는 것이다.
2. Iterative preorder의 구현
t = Stack.Delete(); 방문할 노드를 스택에서 받아온다.
1. 후위순회의 방법
[C++] 반복적트리순회 알고리즘 2
Ⅰ. Iterative preorder 1. 전위순회의 방법 전위순회는...
1. 전위순회의 방법
}
Stack.Add(t→rightChild); 부모-왼쪽-오른쪽 순으로 방문하므로 오른쪽 삽입 후
순서
레포트 > 기타
void iter_preorder(treenode t){
if(t){
전위순회는 스택을 사용하여 비재귀적으로 구현이 가능한데, 방문할 노드는 스택에서 delete하여 얻을 수 있으며, 앞으로 방문할 노드들은 스택에 add하여 주면 된다.
pre_order(t→leftChild);
} end of while
Download : [C++] 반복적트리순회 알고리즘.hwp( 95 )
C++ 반복적트리순회 알고리즘 2
if(t){ 방문할 노드가 존재하는 경우 순회를 계속한다.
Ⅰ. Iterative preorder
Stack의 초기화;
cout t→data ` n`;
후위순회는 왼쪽자식-오른쪽자식-부모노드 순으로 트리를 순회하는 것으로서 recursive로 구현하면 아래와 같은 알고리즘으...
Stack.Add(t→leftChild); 왼쪽 노드를 삽입한다. pre_order(t→rigntChild);
Stack.Add(t); Stack에 노드를 삽입한다. 이를 알고리즘으로 표현하면 아래와 같다.


