|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Costiera Amalfitana
Messaggi: 604
|
[JAVA] e correttezza espressioni matematiche
Dovrei scrivere una funzione java (utilizzando TDA stack), che mi controlla la correttezza delle espressioni matematiche che usano le parentesi () e [].
Mi deve restituire TRUE se le parentesi sono annidate correttamente e FALSE al contrario. ESEMPIO: ([5+3)] //FALSE perchè le parentesi non sono annidate correttamente (5+2)-1 //FALSE perchè le parentesi non sono annidate correttamente (6+2 //FALSE perchè le parentesi non sono annidate correttamente (abc[bla]piripa(123[456])+++)-() //TRUE perchè le parentesi sono annidate correttamente Spero di essere stato chiaro. Esperti programmatori JAVA mi aiutate??? Grazie.
__________________
C A R P E D I E M |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2004
Città: Acireale
Messaggi: 447
|
TDA = Tipo di Dato Astratto, giusto ???
Comunque...penso che il codice del metodo per far quello che vuoi tu è : Codice:
import java.util.*;
...
public boolean controllaParentesi(String espressione) {
}
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2004
Città: Acireale
Messaggi: 447
|
Scusate per prima ma ho sbagliato ed è partito il post!!! :P
Dicevo... TDA = Tipo di Dato Astratto, giusto ??? Comunque...penso che il codice del metodo per far quello che vuoi tu è : Codice:
import java.util.*;
...
public boolean controllaParentesi(String espressione) {
int l = espressione.lenght();
int i;
char c;
Stack s = new Stack();
for ( i = 0; i < l; i++) {
c = espressione.charAt(i);
if ( c == '(' || c == '[' )
s.push(new String(c));
if ( (c == ')' || c == ']') && !s.empty()) {
String p = (String) s.peek();
String cc = new String(c);
if ( p == c ) s.pop();
}
}
return s.empty();
}
Fammi sapere se ci sono errori. Ciao |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:32.



















