[자료구조실습] 이진탐색트리 후위 순회

노은서·2024년 10월 21일

📌 문제2. 이진탐색트리 - 후휘 순회

✅ 문제 설명

문제) 입력으로 주어진 이진탐색트리를 후위 순회한 결과 출력

테스트 결과

✅ 아이디어

⭐ N개의 정수를 읽어서 insert 연산 사용!! --> 이진탐색트리를 먼저 생성해야함

⭐ 생성한 이진탐색트리에서 후위 순회한 결과 출력

insert함수, postorder 함수 구현하기!!

✅ 내가 짠 코드

⚠️ 수정 해야하는 부분 - postorder

처음에 if(node != NULL) 조건 써주기!!

void BinaryTree::postorder(BinaryNode* node){
    if(node->getLeft() != NULL) postorder(node->getLeft());
    if(node->getRight() != NULL) postorder(node->getRight());
    cout << node->getData() << endl;

}

⚠️ 답지랑 다른 부분 - 메인 함수 루트 설정

답지

for(int i = 0 ; i < N ; i++)
{ 
	cin >> n;
    BinaryNode* node = new BinaryNode(n);
    tree.insert(node);
    if( i == 0 ) tree.setRoot(node);

내가 짠 코드 --> 이렇게 짜도 가능! 이미 insert 함수에 루트를 설정하는 로직이 구현되어 있음!! 이미 루트를 세팅 했음

int main(){
    BinSrchTree tree;
    int N,n;

    cin >> N;

    for(int i = 0 ; i < N ; i++){
        cin >> n;
        tree.insert(new BinaryNode(n));
    }
    
    tree.postorder(tree.getRoot());

    return 0;

}
profile
개발 & 공부 기록

0개의 댓글