Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Hercles

árvore binária na ordem de seus nívies..

Mensagens Recomendadas

Hercles

Caros, estou com esta questão: Descreva um algoritmo que percorra os nós de uma árvore binária na ordem de seus nívies. (pode se utilizar uma fila com estrutura). Já tentei assim:

se ponteiro.esquerdo diferente de vazio então pos(ponteiro.esquerdo)

se ponteito.direito diferente de vazio então pos(ponteiro.direito)

Mas eu acho que não esta errado porque uma árvore binaria na ordem de seus niveis segue de cima para baixo e da esquerda pra direita... é isso?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

o que tu queres está descrito no link que apresentei, que por milagre tem a solução em pseudo-código !!!


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Hercles

verdade estou vendo agora... Estou com dificuldade para explicar como ocorre....

1  procedure BFS(G,v) is
2      create a queue Q
3      create a set V
4      enqueue v onto Q
5      add v to V
6      while Q is not empty loop
7          t ← Q.dequeue()
8          if t is what we are looking for then
9              return t
10         end if
11         for all edges e in G.adjacentEdges(t) loop
12             u ← G.adjacentVertex(t,e)
13             if u is not in V then
14                  add u to V
15                  enqueue u onto Q
16             end if
17         end loop
18     end loop
19     return none
20 end BFS

Editado por thoga31
Tags code

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

a única diferênca entre esse código e o que tens de implementar é que esse é uma pesquisa e tu tens de "encontrar" todos os nós


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

aqui na minha universidade eles consideram o lambida como vazio em pseudo-código.

Lambda, não lambida.

Pois, é que o lambda representa no geral as chamadas funções lambda. Aliás, em Haskell pode-se mesmo usar o símbolo para criar funções deste género:

λx -> -- função


Knowledge is free! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

ora deixa ca ver as definições/simbolos de vazio que conheço:

- um circulo cruzado com uma barra vertical ascendente a 45 graus da esquerda para a direita

- zero

- 0

- {}

- []

- nulo

- conjunto de todos os elementos que não pertence ao infinito ?

agora lambda nunca tinha ouvido falar ...

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Hercles

Aparte em vermelho não consigo enteder...

create a queue Q => CRIA UMA FILA EM Q

create a set V => CRIA UM CONJUNTO EM V

enqueue v onto Q => ENFILEIRA V EM Q

add v to V => ADICIONA V A v

while Q is not empty loop = ENQUANTO Q NÃO FOR VAZIO FAÇA

t ← Q.dequeue()

if t is what we are looking for then

return t

end if

for all edges e in G.adjacentEdges(t) loop

u ← G.adjacentVertex(t,e)

obs. do Lambda
Isto deve ser tipo problema de matemática... O aluno faz a questão e diz: Seja x = 0... Ai no caso, seja Lambda = vazio...  deve ser pra facititar a escrita.

Editado por Hercles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

de|queue

- qual o significado da palavra "queue" e o seu significado em termos computacionais

- qual o significado do prefixo "de" na língua inglesa ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Hercles

se ptraiz λ então

insere(F, ptraiz)

enquanto f 0 faça

pt := remove(F) % remove o primeiro elemento de F

visita(pt)

se(pt↑.esq λ) então

insere(F, pt↑.esq)

se(pt ↑.dir λ ) então

insere(F, pt↑. dir)

Editado por Hercles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.