Essa é pros feras! (Desafio de programação)

31/03/2004

0

Há um tempo atrás passava o tempo resolvendo problemas como este, se vcs se interessarem, eu posto mais...

[size=24:152145d54f]Árvores[/size:152145d54f]

Como todos vocês devem ter percebido durante o curso, árvores são fundamentais em vários ramos (!) da Computação. Este problema envolve a construção e percurso de árvores binárias.

[size=24:152145d54f]Tarefa[/size:152145d54f]

Dada uma árvore binária, você deve escrever um programa que produza um percurso ´em níveis´. Cada vértice de uma árvore contém um inteiro positivo que identifica o vértice unicamente. Em um percurso em níveis os vértices em um dado nível são visitados da esquerda para a direita, e todos os nós do nível k são visitados antes dos nós do nível k + 1. Por exemplo, para a árvore abaixo,
[img:152145d54f]http://www.afw.hpg.com.br/Contestos/ProvaOBI2000-Fase2-3.gif[/img:152145d54f]
um percurso em nível produz 5, 4, 8, 11, 13, 4, 7, 2, 1.

[size=24:152145d54f]Entrada[/size:152145d54f]

Na entrada uma árvore binária é especificada como uma seqüência de pares (v, p) onde v é o valor do vértice cujo caminho desde a raiz é descrito pelo vetor p. Os elementos de p têm valor 1 ou -1, representanto respectivamente um ramo direito ou um ramo esquerdo. O final do vetor p é indicado por um elemento de valor 0. Na árvore da figura acima, o vértice que contém 13 é especificado por (13, [1, -1, 0]) e o nó que contém 2 é especificado por (2, [-1, -1, 1, 0]). A raiz é especificada por (5, [0]), onde o vetor vazio representa o caminho da raiz até a própria raiz.
A entrada é composta de vários conjuntos de teste. A primeira linha de um conjunto de teste contém um número inteiro positivo N que indica o total de vértices da árvore. As N linhas seguintes contêm cada uma a descriçào de um vértice, no formato descrito acima. O final da entrada é indicado quando N = 0.

[size=24:152145d54f]Exemplo de Entrada[/size:152145d54f]
9
11 -1 -1 0
7 -1 -1 -1 0
8 1 0
5 0
4 -1 0
13 1 -1 0
2 -1 -1 1 0
1 1 1 1 0
4 1 1 0
3
10 0
20 -1 0
30 1 0
0

[size=24:152145d54f]Saída[/size:152145d54f]
Para cada conjunto de teste da entrada seu programa deve produzir três linhas. A primeira linha identifica o conjunto de teste, no formato ´Teste n´, onde n é numerado a partir de 1. A segunda linha deve conter os valores dos vértices na ordem do percurso em nível, conforme determinado pelo seu programa.
A terceira linha deve ser deixada em branco. A grafia mostrada no Exemplo de Saída, abaixo, deve ser seguida rigorosamente.

[size=24:152145d54f]Exemplo de Saída[/size:152145d54f]


Teste 1
5 4 8 11 13 4 7 2 1

Teste 2
10 20 30

(esta saída corresponde ao exemplo de entrada acima)

[size=24:152145d54f]Restrições[/size:152145d54f]

0 ≤ N &8804; 10000 (N = 0 apenas para indicar o fim da
entrada)
0 &8804; valor de um vértice &8804; 10000

Dica: Observem uma propriedade das ávores binárias.


Beppe

Beppe

Responder

Posts

31/03/2004

Beppe

Ia esquecendo, podem fazer isso na linguagem que quiserem, mas sinto que quem fizer vai fazer em Delphi... :roll: Neste caso pode ser usadas as rotinas Read e Write de System para arquivos TextFile. Pode-se ler e dar saída da tela ou arquivo, como preferir.


Responder

31/03/2004

Keitarosan

Eu ateh kiria fazeh, mas nom intendi nada :cry: :cry: :cry:


Responder

31/03/2004

Lucas Silva

na verdade o que é isso Beppe, tipo um trabalho de faculdade?


Responder

31/03/2004

Otto

ow bipi, ce quer que a gente faça seu trabalho da faculdade, é? :evil:









:lol: :lol: :lol:
to zuando... no stress.. hehehe.. putz, nao entendi nadica de nada...


Responder

31/03/2004

Fabio.hc

só entendi até [size=24:441444d5b4]Tarefa[/size:441444d5b4],
daí para baixo num entendi mais nada ... :cry:


Responder

31/03/2004

Beppe

AhueaHUAEhAheUAEHauehaUEHaUehAUEHUA xDDDD

ow, na faculdade as coisas são do tipo ´faça um catálogo de CDs´(ao menos no começo...)

Isso é uma tarefa, como, digamos, de gincana, ou olímpiada, só que com o auxílio do computador... :idea:

Mas caras, tá tão difícil assim? :o Com mais tempo eu posto a resposta, é beeeeeeeeeem simples... 8)


Responder

31/03/2004

Keitarosan

Mas caras, tá tão difícil assim? :o Com mais tempo eu posto a resposta, é beeeeeeeeeem simples... 8)


Dificil? bom, si eh dificil eu nom sei, afinal nom consegui intendeh ainda T-T
Depois vou reler pela terceira veix pra ve si minha mente si ´alumia´ :P :P


Responder

31/03/2004

Fabio.hc

AhueaHUAEhAheUAEHauehaUEHaUehAUEHUA xDDDD ow, na faculdade as coisas são do tipo ´faça um catálogo de CDs´(ao menos no começo...) Isso é uma tarefa, como, digamos, de gincana, ou olímpiada, só que com o auxílio do computador... :idea: Mas caras, tá tão difícil assim? :o Com mais tempo eu posto a resposta, é beeeeeeeeeem simples... 8)


Não coloca a resposta ainda, deixa eu tentar resolver esta bagaça neste fim de semana.


Responder

31/03/2004

Nildo

Não coloca a resposta ainda, deixa eu tentar resolver esta bagaça neste fim de semana.


É claro, só se a gente entender :oops:


Responder

31/03/2004

Paulo_amorim

árvores são fundamentais em vários ramos


eu soh nao entendi essa parte :lol: :lol: :lol: :lol:

Nao entendi nada do que foiexplicado!!!


Responder

31/03/2004

Beppe

Pô! Vcs naum querem me ajudar com o dever de casa naum? :wink:

Amanhã tô com tempo livre, então vou tentar explicar melhor, flw?


Responder

01/04/2004

Beppe

Gente, os detalhes estão aí em número suficiente, mas em retribuição a disposição de vcs, vou dar mais umas dicas...

- Quem naum sabe (ainda) o que é uma árvore binária(AB), nem adianta tentar resolver :(
- O problema especifíca uma árvore binária apenas, sem nenhuma ordenação
- Escolha a estrutura de dados certa: essa escolha é fundamental, após isso, é sem mistério(a própria escolha é sem mistério)
- Observe as restrições finais, isso ajuda na hora de implementar

Quando a entrada de dados:
- é servido como entrada a descrição de uma AB: o número de nós, seguido da descrição(valor e caminho até a raíz) dos nós, um nó por linha
Por exemplo, o nó (13 1 -1 0), indica que o valor 13 é o filho esquerdo, do filho direito da raíz. (vide figura no topo)

Acho que agora ficou mais claro né? :wink: :)


Responder

01/04/2004

Henry

- Quem naum sabe (ainda) o que é uma árvore binária(AB), nem adianta tentar resolver


To fora.........


Responder

03/04/2004

Fabio.hc

Up.


Responder

03/04/2004

Beppe

Amanhã eu coloco a solução entaum, ou hj mais tarde, sei la...


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar