Ajudaaaaaaaaaaaaaaa

Olá!!! To desesperada com um trabalho da faculdade e gostaria de saber se vc sabe fazer, dependo desse trabalho para naum pegar exame e DP o qual noa posso e por isso to apavorada… o trabalho é sobre arvore e a descrição geral seria mais ou menos isso:
Implemente em Java, um aplicativo capaz de ler uma expressão aritmética fornecida pelo usuário e armazená-la em uma árvore binária. O aplicativo também deve ser capaz de avaliar a expressão e apresentar o seu resultado.

Obs: Para este aplicativo, somente devem ser consideradas como expressões aritméticas válidas, aquelas que contenham números, parênteses e as quatro operações básicas. Exemplo:

((((3 + 1) x 3) / ((9 - 5) + 2)) - ((3 x (7 - 4)) + 6))

O aplicativo deverá ser capaz de reconhecer expressões inválidas e informar ao usuário quando elas ocorrerem.

Escreva um artigo descrevendo o código e a metodologia utilizada para armazenamento e avaliação das expressões.

Realize testes para validar o seu aplicativo. A metodologia dos testes e os resultados obtidos também deverão ser apresentados no artigo.

vc poderia me ajudar ou sabe de alguem q sabe fazer??? tenho q entregar na quinta feira os codigos, por favor peço com uma enorme gentileza e por td qt e santo :frowning: :frowning: :cry:

aguardo retorno

Vanessa

Vanessa,

Aqui no GUJ não costumamos vazer trabalho de faculdade, mas todos aqui estarão disponíveis para responder suas eventuais duvídas se você tentar fazer. :wink:

Principalmente porque seu professor também pode ser um membro do GUJ :wink:

Mas, como foi dito, estamos à disposição para responder a suas dúvidas.

Já perguntou para o Oráculo ? :smiley:

Acho que isto lhe ajudará

http://homepage.smc.edu/kennedy_john/PARSETREES.PDF

Nao sei se isso ajuda mas

[code]class No {

Object Dado;
No esq;
No dir;

public No() {
Dado = null;
esq = null;
dir = null;
}

public No(Object x) {
Dado = x;
esq = null;
dir = null;
}

}

public void CriarExp(No T, String s, int esq) {

char c = s.charAt(i++); // mostrar quais caracteres estão sendo analisados
System.out.print(" "+ c);

if (c == ‘(’) {
if (this.isEmpty()) T = this.root = new No(""); //criando nó com elemento vazio
else if (esq==0) T = T.esq = new No("");
else if (esq==1) T = T.dir = new No("");

   CriarExp(T, s, 0);
   
   c = s.charAt(i++); //acessar os operadores      

   T.Dado = new Character(c); // modificando os operadores nos nós interiores

   CriarExp(T, s, 1);
   i++; //saltar o parentese fechando 

}
// alocando os nós folhas
if (c != ‘(’ && c != ‘)’ && c!= ‘*’ && c!= ‘/’ && c!= ‘-’ && c != ‘+’) {
if (esq==0) T.esq = new No(new Character©);
else if (esq == 1) T.dir = new No(new Character©);

}
}

[/code]

A String s seria a expressao fornecida pelo usuario.
A função apenas constrói a arvore e nao valida a expressao mas pelo menos já é um começo :wink:

A unica coisa que eu consegui achar nos meus arquivos foi isso…
Depois dou uma procurada melhor e vejo se tem mais alguma coisa

Tenho um monte de trabalho atrazado da empresa aqui … vou mandar um email pra voce e vc faz de graça pra mim tb ? :mrgreen:

Aí eu vou começar a cobrar :wink:

Não cara só postei o codigo porque quando li a duvida da garota, sabia que já tinha feito algo parecido…
Sei que não é legal dar tudo de mão beijada mas pelo desespero da garota eu nao aguentei :XD:

Obrigada aqueles que tentaram me ajudar…
naum to pedindo pra ninguem fazer td completo so que me ajudem…
Agradeco a quem puder me ajudar, to desesperada mesmo
valew

*** Bloqueado ***

Usem o outro topico:

http://www.guj.com.br/posts/list/25871.java

E, Vanessa, coisa feia ficar criando topico duplicado. Humpf!