Help ArrayList & Stack

2 respostas
J

ok :slight_smile:
tenho uma pequeno problema… :?:
tenhoq ue resolver isso… estou pegando de uma sequencia de um arquivo Txt uma sequencia… Polonesa Reversa…
Separo-as com Split e coloco num Array
blz… o problema fica quando a expressao se resulta em usar as variaveis…
(Ex: y 2 3 - 2 5 + * = OU x 2 y + 1 - =)
pois tenho q coloca-las na lista e inicializa-las…e não sei como fazer isso :evil: …
casa ja exista apenas mudar seu valor…
por favor alguem pode me ajudar… :lol:

ArrayList<String> lista = new ArrayList<String>();
String line = out.readLine(); 
Stack<String> auxS = new Stack<String>();
 while(line != null){
	while(auxS.isEmpty() == false){
		auxS.pop();
		}

	System.out.println(line);
	String a[] = line.split(" ");
	double valor;
	for(int i = 0; i <a.length; i++){
	  if(a[i].isEmpty()== false){
		String nro = "";
		double v1 = 0;
		double v2 = 0;
									 
                if(a[i].equalsIgnoreCase("=")){
		       nro = auxS.pop();
			 String varN = auxS.pop();
			 if (lista.contains(varN)){
				 String vA1 = a[i];
				 vA1 = auxS.pop();
			 }else{
			         lista.add(varN);
				 double   = Double.parseDouble(auxS.pop());
				 }
		 }else{
		         auxS.push(a[i]);
			 }
	 }

2 Respostas

J

a funcionalidade do program e bem simples… ele usa a notação polonesa reversa para fazer calculos, tipo uma calculadora… ok… entao cada numero ou variavel ele coloca numa pilha(acho q eskeci de falar isso), ate encontrar um marcador, operador…
e meu problema se encotra quando eu coloco a variavel na lista… tipo… vem uma operador “=”(na pilha degamos entao tenhamos x 2 ) blz eu tiro o x da pilha…
add ele na list mas não sonsigo fazer com q esse “x” referencia ao resultado ou seja 2…
a parte dou double,parse() pq estou convertendo para numero… da pilha… pq se não é um operador, um variavel JA INICIALIZADA, ou seja que ja esta na lista, ou que deve ser inicializada é um numero eai q eu conferto para double… enfim…
mas “necessidade de usar as variáveis eu criaria um array de valores e associava cada variável a uma posição do array” não peguei sua ideia…

J
If Versao < 2[b]YYZZZ[/b] Then
   'chama sub com scripts da versão X.YY.ZZZ
   'versa VERSAO X.YY
   Versao = fVERSA2[b]XX²YY²[/b]TO[b]XYYZZ[/b]
End If
Criado 22 de outubro de 2007
Ultima resposta 24 de set. de 2008
Respostas 2
Participantes 1