Arvore como vetor

7 respostas
X

Alguem sabe como eu posso fazer um caminhamentos em ordem numa arvore binaria representada como vetore?

7 Respostas

ViniGodoy

Ela é um vetor simples, ou um vetor de vetores? Pode descrever melhor sua estrutura?

X

ele possui um array e como que se fosse cada no um vetorentao se minha arvore possui 10 nodos eu possuo 10 vetores

nel

Boa noite.

Não poderia usar Map? Algo como:

Map<Integer, List<?> map = new HashMap<Integer, List<?>();

Para cada chave (posição) do map você adiciona uma nova Lista, ou seja, com 10 posições você teria 10 listas. Seria algo assim?
Abraços.

X

Nao teria que ser mesmo com vetores

index array

0 20
1 15
2 40

ficaria assim a arvore

20 / \ 15 40

L

Olá,

tvz isso te ajude: http://www.ime.usp.br/~pf/algoritmos/aulas/hpsrt.html

Mas precisamente:

  • índice 1 é a raiz da árvore;
  • pai de um índice f é f/2 (é claro que 1 não tem pai);
  • filho esquerdo de um índice p é 2p e o filho direito é 2p+1 (é claro que o filho esquerdo só existe se 2p ≤ m e o filho direito só existe se 2p+1 ≤ m).

Dada essas propriedades, fica simples montar uma árvore a partir de um vetor e vice-versa.

[]s

X

Blz valeu é isso que eu quero. So que ainda nao consegui montar uma logica para fazer o caminhamento em ordem. Tens alguma ideia???

Pois preciso fazer o percurso em ordem e imprimir na tela o dado simulando um percurso em ordem

L

Você sabendo quem é a raiz da árvore, e como chegar nos filhos esquerdo e direito, o algoritmo inorder é o mesmo do que tem aos montes pela internet. É só adaptar.

Criado 23 de novembro de 2009
Ultima resposta 24 de nov. de 2009
Respostas 7
Participantes 4