백준 5639번 (이진 검색 트리, C++) [BAEKJOON]

이진 검색 트리

https://www.acmicpc.net/problem/5639

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초256 MB3544213888982138.260%

문제

이진 검색 트리는 다음과 같은 세 가지 조건을 만족하는 이진 트리이다.

  • 노드의 왼쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 작다.
  • 노드의 오른쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 크다.
  • 왼쪽, 오른쪽 서브트리도 이진 검색 트리이다.

전위 순회 (루트-왼쪽-오른쪽)은 루트를 방문하고, 왼쪽 서브트리, 오른쪽 서브 트리를 순서대로 방문하면서 노드의 키를 출력한다.

후위 순회 (왼쪽-오른쪽-루트)는 왼쪽 서브트리, 오른쪽 서브트리, 루트 노드 순서대로 키를 출력한다.

예를 들어, 위의 이진 검색 트리의 전위 순회 결과는 50 30 24 5 28 45 98 52 60 이고, 후위 순회 결과는 5 28 24 45 30 60 52 98 50 이다.

이진 검색 트리를 전위 순회한 결과가 주어졌을 때, 이 트리를 후위 순회한 결과를 구하는 프로그램을 작성하시오.

입력

트리를 전위 순회한 결과가 주어진다.

노드에 들어있는 키의 값은 106보다 작은 양의 정수이다.

모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다.

같은 키를 가지는 노드는 없다.

출력

입력으로 주어진 이진 검색 트리를 후위 순회한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1

50
30
24
5
28
45
98
52
60

예제 출력 1

5
28
24
45
30
60
52
98
50

출처

ICPC > Regionals > Asia Pacific > Thailand > 2011 ACM-ICPC Asia Phuket Regional Programming Contest B번

알고리즘 분류


통과된 코드

#include <iostream>

using namespace std;

struct BinaryNode
{
    int _Num;
    BinaryNode* _Left;
    BinaryNode* _Right;

    BinaryNode(int num)
        : _Num(num), _Left(nullptr), _Right(nullptr)
    {}

    void ArrayBinaryNode(int _n)
    {
        if (_Num > _n) {
            if (_Left == nullptr) _Left = new BinaryNode(_n);
            else _Left->ArrayBinaryNode(_n);
        }
        else {
            if (_Right == nullptr) _Right = new BinaryNode(_n);
            else _Right->ArrayBinaryNode(_n);
        }
    }
};

void PostorderTraverse(BinaryNode& CurrentNode)
{
    if (CurrentNode._Left != nullptr) PostorderTraverse(*CurrentNode._Left);
    if (CurrentNode._Right != nullptr) PostorderTraverse(*CurrentNode._Right);
    cout << CurrentNode._Num << "\n";
}


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int _N;
    cin >> _N;
    BinaryNode _RootNode(_N);
    while (true) {
        cin >> _N;
        if (cin.eof() == true)
            break;
        _RootNode.ArrayBinaryNode(_N);
    }

    PostorderTraverse(_RootNode);

	return 0;
}

“백준 5639번 (이진 검색 트리, C++) [BAEKJOON]”에 대한 1,532개의 생각

  1. https://medium.com/@seonza100/errores-comunes-en-la-gesti%C3%B3n-del-tiempo-y-c%C3%B3mo-evitarlos-para-ser-m%C3%A1s-eficaz-aa78d2328766

    ?Hola a todos!

    Si alguna vez se han sentido abrumados por la falta de tiempo o han luchado para cumplir con todas sus tareas, quiero compartir algo que podria cambiar su forma de gestionar su tiempo. He estado profundizando en la gestion del tiempo y he creado una serie de blogs que abordan temas esenciales sobre como mejorar en este aspecto crucial de nuestras vidas.

    Uno de los articulos mas recientes que escribi es sobre los errores comunes en la gestion del tiempo y como evitarlos. Aqui exploro problemas tipicos como la procrastinacion, la falta de priorizacion y el multitasking ineficaz. Ofrezco estrategias practicas para superar estos desafios y optimizar tu dia a dia. Si alguna vez te has preguntado por que parece que siempre estas corriendo contra el reloj, este articulo te dara una guia clara para mejorar tu eficiencia.

    Otro tema que cubro es como elegir el curso de gestion del tiempo ideal. Hay tantas opciones disponibles, desde talleres presenciales hasta cursos online, y puede ser abrumador decidir cual es el mejor para ti. En este blog, te ofrezco consejos para elegir la capacitacion adecuada que se ajuste a tus necesidades y objetivos. ?Es una lectura obligada si estas considerando invertir en tu desarrollo personal y profesional!

    Tambien he escrito sobre los beneficios de la capacitacion en gestion del tiempo y como puede ayudarte a evitar errores comunes. Los talleres y cursos pueden ofrecerte herramientas y tecnicas valiosas, ademas de soporte personalizado para mejorar tu gestion del tiempo. Aprenderas desde como planificar tus tareas hasta como delegar eficazmente, lo que puede transformar tu productividad.

    Espero que encuentren estos articulos utiles y que les proporcionen herramientas y conocimientos valiosos. ?No duden en comentar y compartir sus propias experiencias con la gestion del tiempo!

    ?Saludos y exito en su gestion del tiempo!

  2. https://medium.com/@seonza100/c%C3%B3mo-elegir-el-taller-de-t%C3%A9cnicas-de-ventas-ideal-para-ti-gu%C3%ADa-pr%C3%A1ctica-21ece4f66d9f

    Hola a todos!

    Estoy emocionado de compartir con ustedes algo que puede marcar una gran diferencia en sus habilidades de ventas y en su carrera profesional. Si alguna vez se han preguntado como mejorar su tecnica de ventas, estan en el lugar correcto. He estado explorando diferentes recursos sobre talleres y cursos de tecnicas de ventas y me he topado con informacion increible que quiero compartir.

    Recientemente, he escrito una serie de blogs donde exploro donde aprender tecnicas de ventas y los mejores cursos y talleres disponibles. Por ejemplo, en uno de mis articulos, hablo sobre los top 5 talleres de tecnicas de ventas en tu ciudad. Aqui analizo no solo donde encontrarlos, sino tambien que hacer para sacarles el maximo provecho. Si alguna vez has considerado tomar un curso, este blog te ayudara a decidir cual es el mas adecuado para ti.

    Otro tema interesante que cubro es como los talleres de tecnicas de ventas pueden transformar tu estrategia comercial. Me enfoco en los beneficios practicos y los cambios positivos que puedes esperar en tu enfoque de ventas. ?La informacion es increiblemente util!

    Ademas, en otro blog discuto como un curso de tecnicas de ventas online puede ser una opcion viable y efectiva. A veces, la flexibilidad es clave, y un curso en linea puede ofrecer exactamente eso, sin comprometer la calidad.

    He incluido testimonios y casos de estudio en algunos articulos para mostrar como otros han tenido exito con estas tecnicas. Y para aquellos de ustedes que estan pensando en invertir en un curso, tambien trato temas como los errores comunes al elegir un taller y como evitar esos tropiezos.

    Espero que encuentren estos articulos utiles y que les ayuden a mejorar sus habilidades de ventas. ?No duden en compartir sus experiencias y preguntar cualquier cosa! Estoy aqui para ayudarles en todo lo que pueda.

    ?Saludos y feliz venta!

  3. https://pr18529.tinyblogging.com/se-rumorea-zumbido-en-curso-de-liderazgo-72909625

    Hola a todos!

    Estoy emocionado de compartir con ustedes algo que realmente puede transformar su carrera y desarrollo personal. Recientemente, he estado trabajando en una serie de blogs que abordan diversos aspectos de la capacitacion en liderazgo y me encantaria que los conocieran.

    Si alguna vez has considerado como la capacitacion de liderazgo online podria ayudarte a mejorar tus habilidades de gestion, estos posts son justo lo que necesitas. Desde la eleccion del mejor curso de liderazgo hasta la implementacion de tecnicas avanzadas para lideres experimentados, cubro una amplia gama de temas que pueden beneficiarte, ya sea que estes empezando tu carrera o busques potenciar tus habilidades actuales.

    En estos blogs, exploramos cuestiones como la comparacion entre capacitacion en liderazgo presencial y online, estrategias para un liderazgo efectivo en equipos virtuales, y como medir el impacto de la formacion en liderazgo en tu organizacion. Tambien hay consejos practicos sobre como integrar lo aprendido en tu rutina diaria y evitar errores comunes.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤