Duvida arvore de expressao!

1 resposta
L

Boa noite pessoal,
eu to fazendo um trabalho aqui que era pra ser uma arvore de expressao, e eu gostaria que vcs me ajudassem a entender o codigo:

public class tree

{

public treeNode raiz;

private treeNode temp;
public tree() 
{
    raiz = null;
}
private void insereRaiz(String Valor)     //insere a raiz
{
    temp = raiz;
    raiz = new treeNode(Valor);
    raiz.esquerda = temp;
}
    
public void insereNode(String Valor)   //insere o no
{ 
if(raiz == null)
    raiz = new treeNode(Valor);//valor passado vai ser a raiz
else
    if (Valor == "+" || Valor == "-" || Valor == "*" || Valor == "/")
        insereRaiz(Valor);
        else
            raiz.direita = new treeNode(Valor);        
}
   
public void imprime(treeNode no)  //Imprime usando a Inorden
{ 
    if (no != null)
    {
        imprime (no.esquerda);
        System.out.print(no.info);
        imprime (no.direita);
    }

}

}

eu nao to entendendo os metodos insereNode e o metodo imprime, e quando manda imprimir
imprime tipo “a.imprime(a.raiz)”, porque manda imprimir a raiz?

a classe tree node:

package arvore_expressao;

public class treeNode

{

String info;

treeNode direita;

treeNode esquerda;
public treeNode(String Valor)

{

info = Valor;

esquerda = direita = null;

}

}

obigado

1 Resposta

gpd38

Não querendo ser chato e ja sendo.

1º Seja bem vindo ao forum

2º Por favor, quando for colocar codigo, colocar entre as tags codigo

3º Vamos aos codigo

public class tree
{
//variavel da classe treeNode. Com ela vc poderá manipular todas as variaveis e metodos da classe treeNode
public treeNode raiz;
private treeNode temp;

//construtor da classe
//Ele é utilizado para criar uma instancia desta classe onde vc quiser
//sempre que vc colocar  em outra classe o comando tree "nome_da_variavel" = new tree(); vc cria um objeto desta classe na outra
public tree()
{
raiz = null;
}

//este metodo insere a raiz
private void insereRaiz(String Valor) //insere a raiz
{
temp = raiz;
raiz = new treeNode(Valor);
raiz.esquerda = temp;
}

//este metodo ira percorrer a arvore e inserir um no 
public void insereNode(String Valor) //insere o no
{
if(raiz == null)
raiz = new treeNode(Valor);//valor passado vai ser a raiz
else
if (Valor == "+" || Valor == "-" || Valor == "*" || Valor == "/")
insereRaiz(Valor);
else
raiz.direita = new treeNode(Valor);
}

//este metodo somente ira imprimir as arvore inteira
//voce passa como parametro o começo do no que gostaria de imprimir, neste caso ele começa da raiz e vai ate as folhas
public void imprime(treeNode no) //Imprime usando a Inorden
{
if (no != null)
{
imprime (no.esquerda);
System.out.print(no.info);
imprime (no.direita);
}

}
}

eu nao to entendendo os metodos insereNode e o metodo imprime, e quando manda imprimir
imprime tipo "a.imprime(a.raiz)", porque manda imprimir a raiz?

a classe tree node:

package arvore_expressao;
public class treeNode
{
String info;
treeNode direita;
treeNode esquerda;

public treeNode(String Valor)
{
info = Valor;
esquerda = direita = null;
}
}

Ps.: Nao compilei e nem executei.
Somente comentei

Criado 26 de novembro de 2008
Ultima resposta 26 de nov. de 2008
Respostas 1
Participantes 2