Árvore

5 respostas
Mel

Olá

Implementei em C uma árvore binária, mas gostaria de implementá-la em Java. Como seria em Java?? E qto aos ponteiros de C??
Alguém poderia me ajudar, por favor??

Obrigada
Mel[color=darkblue][/color][color=red][/color]

5 Respostas

Calvin

Coloca o se código em C aqui para eu dar uma olhada!

tatianaesc

Olá, Mel,

Uma idéia é você criar uma classe que representa um nó da árvore, contendo como atributos outros nós (filhos). Mais ou menos assim:

public class No {

	private int label;
	private No filhoEsquerdo;
	private No filhoDireito;

Este é o exemplo de uma árvore binária.

Para adicionar ou retirar um nó da árvore, você faz as devidas atualizações nas referências.

[]´s e boa sorte,
Tatiana

Mel

Olá
Já agradecendo a atenção de vcs…!
Tenho esse código em Java que faz a inserção de n°s numa árvore binária, está certinhu. Porém não sei ao certo como ficaria isso inserindo em um banco de dados PostgreSQL, isto é, não o INSERT INTO, mas a lógica.

Desdes já agradeço novamente!!
Mel

Mel

Olá
Já agradecendo a atenção de vcs....!
Tenho esse código abaixo em Java que faz a inserção de n°s numa árvore binária, está certinhu. Porém, não sei ao certo como ficaria isso inserindo em um banco de dados PostgreSQL, isto é, não o INSERT INTO, mas a lógica.

/* Cria uma nova célula para ser inserida na árvore. */
	    Celula novaCelula = new Celula(chave);
	    Celula atual = raiz;
	    while(atual != null) { //se a árvore não estiver vazia
  /* Caso a chave seja menor do que a chave da célula atual. */
	      if (chave < atual.getChave()) {
/* Caso a célula atual não tenha filho esquerdo, a novaCelula é inserida à esquerda da célula atual e o método pára. */
	        if(atual.getCelulaEsquerda() == null)  {
	          atual.setCelulaEsquerda(novaCelula);
	          return;
	        }
	        atual = atual.getCelulaEsquerda();
	      }
	      /* Caso a chave seja maior do que a chave da célula atual. */
	      else if(chave > atual.getChave()) {
	        /* Caso a célula atual não tenha filho direito, a novaCelula é inserida à direita da célula atual e o método pára. */
	        if(atual.getCelulaDireita() == null) {
	          atual.setCelulaDireita(novaCelula);
	          return;
	        }
	        atual = atual.getCelulaDireita();
	      }
/* Caso a chave já esteja contida na árvore, imprime uma mensagem na tela e o método pára. */
	      else {
	        System.out.println("Chave já armazenada na árvore.");
	        return;
	      }
	    }
	    if(raiz == null)
	      raiz = novaCelula;
Partes utilizadas no código acima. Pertencem à classe Celula:
public int getChave() { return chave; }

  public Celula getCelulaEsquerda() { return celulaEsquerda; }

  public void setCelulaEsquerda(Celula esquerda) { celulaEsquerda = esquerda; }

  public Celula getCelulaDireita() { return celulaDireita; }

Desdes já agradeço novamente!!
Mel

N

Olá!
Seria possível me mostrar o código de árvore em C? Estou tentando fazer em Java também, caso eu consiga direitinho postarei aqui em seguida!

Obrigada!

Criado 16 de setembro de 2006
Ultima resposta 19 de nov. de 2007
Respostas 5
Participantes 4