두 갈래 트리 사이의 비반복 - - 앞, 가운데, 뒤쪽
1136 단어 데이터 구조와 알고리즘
이전 순서:
Status preOrder(BiTree T, Status (*Visit)(TElemType e)) {
InitStack(S); p = T;
while(p || !StackEmpty(S)) {
while(p) {
visit(p->data);
push(S,p);
p = p->lchild;
}
if(!StackEmpty(S)) {
pop(S,p);
p = p->rchild;
}
}
}
중간 순서 반복:
Status InOrder(BiTree T, Status (*Visit)(TElemType e)) {
InitStack(S); p = T;
while(p || !StackEmpty(S)) {
if(p) {
push(S,p);
p = p->lchild;
}
else {
pop(S,p);
visit(p->data);
p = p->rchild;
}
}
}
다음 순서 반복:
// , :
Status postOrder(BiTree T, Status (*Visit)(TElemType e)) {
InitStack(S); p = T;
while(p || !StackEmpty(S)) {
while(p) {
push(S,p);
p = p->lchild;
}
if(!StackEmpty(S)) {
sn = top(S);
if(!sn->rchild || sn.rchildVisited) {
pop(S,p);
visit(p);
}
else {
sn.rchildVisited = 1;
p = sn->rchild;
}
}
}
}
References:
[1] 데이터 구조(C언어판) 엄울민 오위민 편저
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
두 갈래 나무의 깊이가 두루 다니다텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.