Alguem sabe como eu posso fazer um caminhamentos em ordem numa arvore binaria representada como vetore?
Arvore como vetor
7 Respostas
Ela é um vetor simples, ou um vetor de vetores? Pode descrever melhor sua estrutura?
ele possui um array e como que se fosse cada no um vetorentao se minha arvore possui 10 nodos eu possuo 10 vetores
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.
Nao teria que ser mesmo com vetores
index array
0 20
1 15
2 40
ficaria assim a arvore
20
/ \
15 40
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
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
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.