Dada uma árvore binária, a tua tarefa é descobrir quantos nós existem em cada nível de profundidade. Recorda que a profundidade de um nó é o tamanho do caminho entre a raíz e esse nó (onde o tamanho do caminho é o número de arestas percorridas). A seguinte imagem ilustra uma árvore binária e o número de nós em cada nível de profundidade.
Na primeira linha do input vem um inteiro T indicando o número de casos de teste, ou seja, o número de árvores a considerar a considerar.
Cada árvore é indicada por duas linhas:
É garantido que as árvores são binárias (existem no máximo dois filhos em cada nó). Note também que a maneira como é dado o input não lhe garante conseguir distinguir qual é o filho esquerdo e o filho direito, mas para este problema essa distinção não é realmente necessária, pois não?
O output deve conter T linhas. A i-ésima linha deve indicar o número de nós em cada nível da árvore correspondente. Estes devem vir por ordem de nível (do nível 0 para o nível mais profundo) e deve ser separados por um espaço (nota que não deve vir um espaço a mais no final da linha).
São garantidos os seguintes limites em todos os casos de teste que irão ser colocados ao programa:
1 ≤ T ≤ 20 | Casos de teste | |
1 ≤ N ≤ 100 | Número de nós de uma árvore |
2 10 3 1 10 6 3 4 10 2 1 4 4 4 1
1 2 4 3 1 1 2
O primeiro caso do exemplo de input corresponde à árvore dada em cima no enunciado. O segundo caso corresponde à árvore da figura em baixo.
Algoritmos e Estruturas de Dados (L.EIC011)
DCC/FCUP - Faculdade de Ciências da Universidade do Porto
DEI/FEUP - Faculdade de Engenharia da Universidade do Porto