Escolar Documentos
Profissional Documentos
Cultura Documentos
Tipo Árvore
Ano 1960
Pesquisa binária
Origem: Wikipédia, a enciclopédia livre.
Pesquisa binária
classe Algoritmo de busca
complexidade caso
médio
complexidade
melhor caso
complexidade de
espaços pior caso
otimo Sim
espaço
Algoritmos
ver
Índice
1Análise de Complexidade
2Implementações
o 2.1Pseudo-Código
o 2.2Código em C
3Ver também
4Referências
5Ligações externas
Implementações[editar | editar código-fonte]
Pseudo-Código[editar | editar código-fonte]
Um pseudo-código recursivo para esse algoritmo, dados V o vetor com elementos comparáveis
e e o elemento que se deseja encontrar:
//Implementação Iterativa:
//Implementação Recursiva:
Referências
1. Ir para cima↑ Felipe, Henrique (6 de setembro de 2017). «A Busca Binária». Blog Cyberini.
Consultado em 8 de julho de 2018.
2. Ir para cima↑ Felipe, Henrique (14 de setembro de 2017). «Busca Linear». Blog Cyberini. Consultado
em 8 de julho de 2018.
3. Ir para cima↑ «bsearch(3): binary search of sorted array - Linux man page». linux.die.net (em
inglês). Consultado em 8 de julho de 2018.
Algoritmos de busca
Menu de navegação
Não autenticado
Discussão
Contribuições
Criar uma conta
Entrar
Artigo
Discussão
Ler
Editar
Editar código-fonte
Ver histórico
Busca
Ir
Página principal
Conteúdo destacado
Eventos atuais
Esplanada
Página aleatória
Portais
Informar um erro
Loja da Wikipédia
Colaboração
Boas-vindas
Ajuda
Página de testes
Portal comunitário
Mudanças recentes
Manutenção
Criar página
Páginas novas
Contato
Donativos
Imprimir/exportar
Criar um livro
Descarregar como PDF
Versão para impressão
Noutros projetos
Wikimedia Commons
Ferramentas
Páginas afluentes
Alterações relacionadas
Carregar ficheiro
Páginas especiais
Hiperligação permanente
Informações da página
Elemento Wikidata
Citar esta página
Noutras línguas
العربية
Deutsch
English
Español
हिन्दी
Italiano
日本語
한국어
中文
30 outras
Editar hiperligações
Esta página foi editada pela última vez às 23h32min de 8 de julho de 2018.
Este texto é disponibilizado nos termos da licença Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC
BY-SA 3.0) da Creative Commons; pode estar sujeito a condições adicionais. Para mais detalhes, consulte
as condições de utilização.
Política de privacidade
Sobre a Wikipédia
Avisos gerais
Programadores
Versão móvel
Índice
1Conceitos básicos
o 1.1Definição[2]
o 1.2Elementos
o 1.3Complexidade[3]
2Operações[3]
o 2.1Busca
o 2.2Inserção
o 2.3Remoção
2.3.1Remoção na folha
2.3.2Remoção de nó com um filho
2.3.3Remoção de nó com dois filhos
3Aplicações
o 3.1Percursos em ABB
o 3.2Ordenação
4Ver também
5Referências
6Ligações externas
Definição[2][editar | editar código-fonte]
Seja S = {s1, s2, ..., sn} um conjunto de chaves tais que s1 < s2 ... sn. Seja k um valor dados. Deseja-se
verificar se k S e identificar o índice i tal que k = si.
A Árvore Binária de Busca (ABB) resolve os problemas propostos. A figura ilustra uma ABB.
Uma ABB é uma árvore binária rotulada T com as seguintes propriedades:
1. T possui n nós. Cada nó u armazena uma chave distinta sj S
e tem como rótulo o valor r(u) = sj.
2. Para cada nó v de T r(v1) < r(v) e r(v2) > r(v), onde
v1 pertence à subárvore esquerda de v e v2 pertence à
subárvore direita de v.
Dado o conjunto S com mais de um elemento, existem várias ABB que resolvem o problema.
Elementos[editar | editar código-fonte]
Operações[3][editar | editar código-fonte]
Busca[editar | editar código-fonte]
A busca em uma árvore binária por um valor específico pode ser um processo recursivo ou iterativo.
Será apresentado um método recursivo.
A busca começa examinando o nó raiz. Se a árvore está vazia, o valor procurado não pode existir na
árvore. Caso contrário, se o valor é igual a raiz, a busca foi bem sucedida. Se o valor é menor do que
a raiz, a busca segue pela subárvore esquerda. Similarmente, se o valor é maior do que a raiz, a
busca segue pela subárvore direita. Esse processo é repetido até o valor ser encontrado ou a
subárvore ser nula (vazia). Se o valor não for encontrado até a busca chegar na subárvore nula, então
o valor não deve estar presente na árvore.
Segue abaixo o algoritmo de busca implementado na linguagem Python:
Essa operação poderá ser O(log n) em algumas situações, mas necessita O(n) de tempo no pior caso,
quando a árvore assumir a forma de lista ligada (árvore ziig-zag)[2].
Inserção[editar | editar código-fonte]
A inserção começa com uma busca, procurando pelo valor, mas se não for encontrado, procuram-se
as subárvores da esquerda ou direita, como na busca. Eventualmente, alcança-se a folha, inserindo-se
então o valor nesta posição. Ou seja, a raiz é examinada e introduz-se um nó novo na subárvore da
esquerda se o valor novo for menor do que a raiz, ou na subárvore da direita se o valor novo for
maior do que a raiz. Abaixo, um algoritmo de inserção em Python:
Esta operação requer O (log n) vezes para o caso médio e necessita de O (n) no pior caso. A fim de
introduzir um nó novo na árvore, seu valor é primeiro comparado com o valor da raiz. Se seu valor
for menor que a raiz, é comparado então com o valor do filho da esquerda da raiz. Se seu valor for
maior, está comparado com o filho da direita da raiz. Este processo continua até que o nó novo esteja
comparado com um nó da folha, e então adiciona-se o filho da direita ou esquerda, dependendo de
seu valor.
Remoção[editar | editar código-fonte]
A exclusão de um nó é um processo mais complexo. Para excluir um nó de uma árvore binária de
busca, há de se considerar três casos distintos para a exclusão:
Remoção na folha[editar | editar código-fonte]
A exclusão na folha é a mais simples, basta removê-lo da árvore.
No exemplo acima, o nó de valor 30 está para ser removido, e possui como sucessor imediato o valor
35 (nó mais à esquerda da sua sub-árvore direita). Assim sendo, na exclusão, o valor 35 será
promovido no lugar do nó a ser excluído, enquanto a sua sub-árvore (direita) será promovida para
sub-árvore esquerda do 40, como pode ser visto na figura.
Exemplo de algoritmo de exclusão em Python:
def busca_max(nó_arvore):
esquerda, nó_valor, direita = nó_arvore.esquerda, nó_arvore.valor,
nó_arvore.direita
if direita is None: return (nó_valor, esquerda)
else:
(valor_max, novo_direita) = busca_max(direita)
return (valor_max, (esquerda, nó_valor, novo_direita))
Embora esta operação não percorra sempre a árvore até uma folha, esta é sempre uma possibilidade;
assim, no pior caso, requer o tempo proporcional à altura da árvore, visitando-se cada nó somente
uma única vez.
Aplicações[editar | editar código-fonte]
Percursos em ABB[editar | editar código-fonte]
Em uma árvore binária de busca podem-se fazer os três percursos que se fazem para qualquer árvore
binária (percursos em inordem, pré-ordem e pós-ordem). É interessante notar que, quando se faz um
percurso em ordem em uma árvore binária de busca, os valores dos nós aparecem em ordem
crescente. A operação "Percorre" tem como objetivo percorrer a árvore numa dada ordem,
enumerando os seus nós. Quando um nó é enumerado, diz-se que ele foi "visitado".
Pré-ordem (ou profundidade):
1. Visita a raiz
2. Percorre a subárvore esquerda em pré-ordem
3. Percorre a subárvore direita em pré-ordem
Ordem Simétrica:
def criar_arvore_binaria(valor):
arvore = None
for v in valor:
arvore = arvore_binaria_de_insercao(arvore, v)
return arvore
def arvore_binaria_transversal(nó_arvore):
if nó_arvore is None: return []
else:
esquerda, valor, direita = nó_arvore
return (arvore_binaria_transversal(esquerda) + [valor] +
arvore_binaria_transversal(direita))
Criar ABB tem complexidade O(n2) no pior caso. A geração de um vetor de chaves ordenadas tem
complexidade O(n). O algoritmo de ordenação terá complexidade final O(n2) no pior caso.
Cabe observar que há algoritmos de ordenação dedicados com complexidade O(n.log n), com
desempenho superior ao proposto neste tópico.
Livros e manuais no Wikilivros
Imagens e media no Commons
Referências
1. Ir para cima↑ Gilberg, R.; Forouzan, B. (2001). «8». Data
Structures: A Pseudocode Approach With C++ (em inglês).
Pacific Grove, CA: Brooks/Cole. p. 339. ISBN 0-534-95216-X
2. ↑ Ir para:a b Swarcfiter, Jayme Luiz (1994). Estruturas de Dados e
seus Algoritmos. Rio de Janeiro: LTC. pp. 91–97
3. ↑ Ir para:a b Cormen, Thomas H.; et al. (2009). Introduction to
Algorithms. Massachusetts: MIT Press. pp. 286–307
[Expandir]
v • e
Estrutura de dados
[Esconder]
v • e
Página principal
Conteúdo destacado
Eventos atuais
Esplanada
Página aleatória
Portais
Informar um erro
Loja da Wikipédia
Colaboração
Boas-vindas
Ajuda
Página de testes
Portal comunitário
Mudanças recentes
Manutenção
Criar página
Páginas novas
Contato
Donativos
Imprimir/exportar
Criar um livro
Descarregar como PDF
Versão para impressão
Noutros projetos
Wikimedia Commons
Ferramentas
Páginas afluentes
Alterações relacionadas
Carregar ficheiro
Páginas especiais
Hiperligação permanente
Informações da página
Elemento Wikidata
Citar esta página
Noutras línguas
العربية
Deutsch
English
Español
Italiano
日本語
한국어
Русский
中文
20 outras
Editar hiperligações
Esta página foi editada pela última vez às 17h21min de 24 de agosto de
2017.
Este texto é disponibilizado nos termos da licença Atribuição-
CompartilhaIgual 3.0 Não Adaptada (CC BY-SA 3.0) da Creative Commons;
pode estar sujeito a condições adicionais. Para mais detalhes, consulte
as condições de utilização.
Política de privacidade
Sobre a Wikipédia
Avisos gerais
Programadores
Versão móvel
Árvores binárias
As árvores da computação têm a curiosa tendência
de crescer para baixo…
Uma árvore binária é uma estrutura de dados mais geral que uma lista
encadeada. Este capítulo introduz algumas operações básicas sobre
árvores binárias. O capítulo seguinte, Árvores binárias de busca, trata de
uma aplicação fundamental.
Nós e filhos
Uma árvore binária (= binary tree) é um conjunto de registros que satisfaz
certas condições. As condições não serão dadas explicitamente, mas elas
ficarão implicitamente claras no contexto. Os registros serão
chamados nós (poderiam também ser chamados células). Cada nó tem
um endereço. Suporemos por enquanto que cada nó tem apenas três
campos: um número inteiro e dois ponteiros para nós. Os nós podem,
então, ser definidos assim:
Árvores e subárvores
Suponha que x é um nó. Um descendente de x é qualquer nó que possa ser
alcançado pela iteração das instruções x = x->esq e x = x->dir em
qualquer ordem. (É claro que essas instruções só podem ser iteradas
enquanto x for diferente de NULL. Estamos supondo que NULL é de fato
atingido mais cedo ou mais tarde.)
1. r é NULL ou
2. r->esq e r->dir são árvores binárias.
Exercícios 2
1. Árvores binárias têm uma relação muito íntima com certas sequências bem-
formadas de parênteses. Discuta essa relação.
Varredura esquerda-raiz-direita
Uma árvore binária pode ser percorrida de muitas maneiras diferentes.
Uma maneira particularmente importante é a esquerda-raiz-direita, ou e-
r-d, também conhecida como inorder traversal, ou varredura infixa, ou
varredura central. A varredura e-r-d visita
pilha
5
5 3
5 3 1
5 3 1 0
5 3 1 0 -
5 5 3 1 - 0
/ \ 5 3 2 1
5 3 2 -
3 8 5 3 - 2
/ \ / \ 5 4 3
1 4 6 9 5 4 -
/ \ \ 5 - 4
0 2 7 8 5
8 6
8 6 -
8 7 6
8 - 7
9 8
9 -
- 9
Exercícios 3
1. Considere a função erd_i. É verdade que a sequência de nós na pilha é um
caminho que começa em algum nó e segue os ponteiros esquerdo e direito em
alguma ordem?
2. Verifique que o código abaixo é equivalente ao da função erd_i. O código usa
uma pilha de nós, todos diferentes de NULL, e mais um nó x (que é candidato a
entrar na pilha mas pode ser NULL).
3. void erd_i (arvore r) {
4. noh *x = r;
5. criapilha ();
6. while (true) {
7. while (x != NULL) {
8. empilha (x);
9. x = x->esq; }
10. if (pilhavazia ()) break;
11. x = desempilha ();
12. printf ("%d\n", x->conteudo);
13. x = x->dir; }
14. liberapilha (); }
15. NÚMERO DE NÓS. Escreva uma função que calcule o número de nós de uma árvore
binária.
17. Dada uma árvore binária, encontrar um nó da árvore cujo conteúdo tenha um dado
valor val.
Altura e profundidade
A altura de um nó x em uma árvore binária é a distância entre x e o seu
descendente mais afastado. Mais precisamente, a altura de x é o número
de passos no mais longo caminho que leva de x até uma folha. Os
caminhos a que essa definição se refere são os obtido pela iteração das
instruções x = x->esq e x = x->dir, em qualquer ordem.
n lg(n)
4 2
5 2
6 2
10 3
64 6
100 6
128 7
1000 9
1024 10
1000000 19
Uma árvore binária é balanceada (ou equilibrada) se, em cada um de seus
nós, as subárvores esquerda e direita tiverem aproximadamente a mesma
altura. Uma árvore binária balanceada com n nós tem altura próxima
de log n. (A árvore do exemplo acima é balanceada). Convém trabalhar
com árvores balanceadas sempre que possível. Mas isso não é fácil se a
árvore aumenta e diminui ao longo da execução do seu programa.
Exercícios 4
1. Desenhe uma árvore binária que com 17 nós que tenha a menor altura possível.
Repita com a maior altura possível.
2. Escreva uma função iterativa para calcular a altura de uma árvore binária.
3. Escreva uma função que imprima o conteúdo de cada nó de uma árvore binária.
Faça uma indentação (recuo de margem) proporcional à profundidade do nó.
Segue um exemplo de árvore e sua representação (os
caracteres '-' representam NULL):
4. 555 555
5. / \ 333
6. 111
7. 333 888 -
8. / \ \ -
9. 111 444 999 444
10. -
11. -
12. 888
13. -
14. 999
15. -
16. -
18. Digamos que h é a altura e p é a profundidade de um nó x em uma árvore binária.
É verdade que h + p é igual à altura da árvore?
21. DE HEAP PARA ÁRVORE. Escreva uma função que transforme um heap v[1..n] em
uma árvore binária (quase completa).
24. ÁRVORE AVL. Uma árvore é balanceada no sentido AVL se, para cada nó x, as
alturas das subárvores que têm raízes x->esq e x->dir diferem de no máximo
uma unidade. Escreva uma função que decida se uma dada árvore é balanceada no
sentido AVL. Procure escrever sua função de modo que ela visite cada nó no
máximo uma vez.
Exercícios 5
1. Escreva uma função que preencha corretamente todos os campos pai de uma
árvore binária.
(Note que a função não precisa saber onde está a raiz da árvore.) Na
linha A, y é o endereço do primeiro nó, na ordem e-r-d, da subárvore cuja
raiz é x->dir. As linhas B fazem com que x suba na árvore enquanto for
filho direito de alguém.
Exercícios 6
1. Escreva uma versão recursiva da função primeiro.
3. Escreva uma função que receba o endereço de um nó x de uma árvore binária e
encontre o endereço do nó anterior a x na ordem e-r-d.
Atualizado em 2018-08-07
https://www.ime.usp.br/~pf/algoritmos/
Paulo Feofiloff
DCC-IME-USP
Formas de Leitura:
1 package arvore.binary;
2
/**
3 * Classe nó
4 *
24
26 setNome(nome);
27 setEsquerda(esquerda);
setDireita(direita);
28
}
29
30
@Override
31
public int hashCode() {
32
return getNome() == null ? 0 : getNome().hashCode();
33
34
35
36 }
37
38 @Override
47
48 }
49
50
O objetivo da classe nó (‘Node’) é ser um nodo da árvore binária, possuindo um
identificador (nome) e os ponteiros (referências) para as subárvores da esquerda (private
Node esquerda) e direita (private Node direita).
1 package arvore.binary;
2
3 /**
* <b>Árvore binária</b>
4
5
* <ul>
6
* <li>RED = <u>r</u>aiz, <u>e</u>squerda, <u>d</u>ireita</li>
7
* <li>ERD = <u>e</u>squerda, <u>r</u>aiz, <u>d</u>ireita</li>
8
* <li>EDR = <u>e</u>squerda, <u>d</u>ireita, <u>r</u>aiz</li>
9 * </ul>
10 * @author Emerson Shigueo Sugimoto 07/06/2015 11:39
11 */
13
/**
14
* ao invés deste enum, poderia ser usado um boolean
15
*/
16
public enum ModoRL {
17
esquerda, direita
18 }
19
20 private Node arvore;
21
22 public Node getArvore() { return arvore; }
24
25 /**
*
26
* @param raiz raiz da árvore
27
*/
28
public ArvoreBin(String raiz){
29
setArvore(new Node(raiz));
30
}
31
32 /**
33 * adiciona um novo nó
*/
37
public void AdicionarNo(String noPai, String nomeNo, ModoRL modo){
38
if (modo == ModoRL.direita) {
39
AdicionarNoDireita(noPai, nomeNo);
40
} else if (modo == ModoRL.esquerda) {
41
42 AdicionarNoEsquerda(noPai, nomeNo);
43 }
}
44
45
public void AdicionarNoEsquerda(String noPai, String nomeNo){
46
Node no = findNode(getArvore(), noPai);
47
if (no == null) { return; }
48
no.setEsquerda(new Node(nomeNo));
49 }
50
51 public void AdicionarNoDireita(String noPai, String nomeNo){
52 Node no = findNode(getArvore(), noPai);
54 no.setDireita(new Node(nomeNo));
}
55
56
/**
57
* A ideia não é criar uma árvore binária ordenada,
58
* por isto a busca exaustiva pelos nós.
59
60
* A principal ideia é permitir criar qualquer tipo
61
* de árvore, com qualquer tipo de ordenação.
62 * @param no
63 * @param nome
64 * @return
65 */
74 /**
84 * @param no
85 */
94 * RED
95 * @return
*/
96
public String PreOrdem(){
97
if (getArvore() == null) { return ""; }
98
return readPreOrdem(getArvore());
99
}
100
101
/**
102 * RED
103 * @param no
104 * @return
105 */
113 }
}
115
116
/**
117
* ERD
118
* @return
119
*/
120
public String InOrdem(){
121 if (getArvore() == null) { return ""; }
122 return readInOrdem(getArvore());
123 }
124
125 /**
* @param no
127
* @return
128
*/
129
private String readInOrdem(Node no){
130
if (no == null) {return "";}
131 String rt = "";
132 if (no.getEsquerda() != null) {
134 }
135 rt += (rt.isEmpty() ? "" : ",") + no.toString();
return readPosOrdem(getArvore());
147
}
148
149
/**
150
* EDR
151
* @param no
152
* @return
153 */
154 private String readPosOrdem(Node no){
164 }
165
166
167
168
169
170
171
172
173 }
174
175
176
177
178
179
180
A classe ‘ArvoreBin’ contém a referência para a árvore binária (private Node arvore),
os métodos para inserir nós à direita e esquerda de um nó (nó pai) e forma de percurso
recursivo na árvore binária.
O método
têm por objetivo encontrar um nó na árvore por busca exaustiva, pois, o objetivo da
árvore não é ordenar a entrada de novos nós, mais sim permitir ao usuário inserir nós na
ordem e posição que desejar, pois a finalidade da estrutura é realizar o estudo das
formas de leitura de árvore binária: Pré, Em e Pós-Ordem.
1 package arvore.main;
2
3 import arvore.binary.ArvoreBin;
import arvore.binary.ArvoreBin.ModoRL;
4
5
/**
6
* <b>Classe Main - Árvore binária</b>
7
9 * <ul>
16 */
18
System.out.println("-----------------------------------------");
20
ArvoreBin arvore = new ArvoreBin("A");
21
22
arvore.AdicionarNo("A","B", ModoRL.esquerda);
23
arvore.AdicionarNo("B", "D", ModoRL.esquerda);
24
arvore.AdicionarNo("A", "C", ModoRL.direita);
25 arvore.AdicionarNo("C", "E", ModoRL.esquerda);
26 arvore.AdicionarNo("E", "G", ModoRL.direita);
27 arvore.AdicionarNo("C", "F", ModoRL.direita);
30
39 arvore.AdicionarNo("B","A", ModoRL.esquerda);
arvore.AdicionarNo("B","D", ModoRL.direita);
40
arvore.AdicionarNo("D","C", ModoRL.esquerda);
41
arvore.AdicionarNo("D","E", ModoRL.direita);
42
arvore.AdicionarNo("F","G", ModoRL.direita);
43
arvore.AdicionarNo("G","I", ModoRL.direita);
44 arvore.AdicionarNo("I","H", ModoRL.esquerda);
45
46 System.out.println("PreOrdem (RED): " + arvore.PreOrdem());
49 System.out.println("-----------------------------------------");
50
arvore.Clear("A");
51
52
arvore.AdicionarNo("A","B", ModoRL.esquerda);
53
arvore.AdicionarNo("B","C", ModoRL.esquerda);
54
arvore.AdicionarNo("C","E", ModoRL.esquerda);
55
arvore.AdicionarNo("E","I", ModoRL.direita);
56
arvore.AdicionarNo("C","F", ModoRL.direita);
57 arvore.AdicionarNo("F","J", ModoRL.direita);
58 arvore.AdicionarNo("B","D", ModoRL.direita);
59 arvore.AdicionarNo("D","G", ModoRL.esquerda);
60 arvore.AdicionarNo("D","H", ModoRL.direita);
arvore.AdicionarNo("H","K", ModoRL.esquerda);
61
arvore.AdicionarNo("H","L", ModoRL.direita);
62
63
System.out.println("PreOrdem (RED): " + arvore.PreOrdem());
64
System.out.println("InOrdem (ERD): " + arvore.InOrdem());
65
System.out.println("PosOrdem (EDR): " + arvore.PosOrdem());
66
System.out.println("-----------------------------------------");
67 }
68
69
70
71
72
73 }
74 /*
75
76 Saída
77 -----------------------------------------
-----------------------------------------
88
89
*/
90
91
92
93
O resultado será:
—————————————–
PreOrdem (RED): A,B,D,C,E,G,F,H,I
InOrdem (ERD): D,B,A,E,G,C,H,F,I
PosOrdem (EDR): D,B,G,E,H,I,F,C,A
—————————————–
PreOrdem (RED): F,B,A,D,C,E,G,I,H
InOrdem (ERD): A,B,C,D,E,F,G,H,I
PosOrdem (EDR): A,C,E,D,B,H,I,G,F
—————————————–
PreOrdem (RED): A,B,C,E,I,F,J,D,G,H,K,L
InOrdem (ERD): E,I,C,F,J,B,G,D,K,H,L,A
PosOrdem (EDR): I,E,J,F,C,G,K,L,H,D,B,A
—————————————–
1
arvore.Clear("F");
2
3 arvore.AdicionarNo("F","B", ModoRL.esquerda);
4 arvore.AdicionarNo("B","A", ModoRL.esquerda);
5 arvore.AdicionarNo("B","D", ModoRL.direita);
6 arvore.AdicionarNo("D","C", ModoRL.esquerda);
7 arvore.AdicionarNo("D","E", ModoRL.direita);
arvore.AdicionarNo("F","G", ModoRL.direita);
8
arvore.AdicionarNo("G","I", ModoRL.direita);
9
arvore.AdicionarNo("I","H", ModoRL.esquerda);
10
A leitura será:
—————————————–
PreOrdem (RED): F,B,A,D,C,E,G,I,H
InOrdem (ERD): A,B,C,D,E,F,G,H,I
PosOrdem (EDR): A,C,E,D,B,H,I,G,F
—————————————–
REPORT THIS AD
Share this:
Twitter
Facebook
Relacionado
Java MatrixEm "Java"
Enviar E-mail C#Em "C#"
Comparação entre JAVA e C++Em "Cpp"
Postado em Árvore Binária, Estruturas de Dados, Java, ProgramaçãoCom a tag árvore binária, Em
Ordem Pós Ordem, Java, percurso, Pré OrdemDeixe um comentário
Navegação de Posts
C++ Threads com Time To Live (TTL)