Hi!
Folgendes Problem:
Eine Stack-Maschine soll erlauben, beliebig viele double-Zahlen auf den Stack zu legen (Operation push). Weiters definiert die Stack-Maschine die Operationen Addition, Subtraktion, Multiplikation und Division, die jeweils die zwei obersten Zahlen vom Stack nehmen, mit diesen Zahlen die entsprechenden Operationen ausführen und das Ergebnis wieder auf den Stack legen:
Meine Frage: Wie kann ich das 2.oberste Element vom Stack nehmen??
Danke!
Sind die anderen Operationen korrekt?
Folgendes Problem:
Eine Stack-Maschine soll erlauben, beliebig viele double-Zahlen auf den Stack zu legen (Operation push). Weiters definiert die Stack-Maschine die Operationen Addition, Subtraktion, Multiplikation und Division, die jeweils die zwei obersten Zahlen vom Stack nehmen, mit diesen Zahlen die entsprechenden Operationen ausführen und das Ergebnis wieder auf den Stack legen:
Meine Frage: Wie kann ich das 2.oberste Element vom Stack nehmen??
Code:
package Stackoperation;
public class Stack {
private double data[];
int top=0;
double oberstes=0.0;
double zweitOberstes=0.0;
double ergebnis=0.0;
public Stack(int size){
data=new double[size];
}
public void push(double item){
data[top]=item;
top++;
}
//oberstes Element herausnehmen! ->funktioniert!
public double popOberstes(){
top--;
return data[top];
}
//2.oberstes Element herausnehmen->funktioniert nicht!
public double popZweitOberstes(){
double zahl=data[top-1];
data[top-1]=top;
top--;
return zahl;
}
//alle Elemente ausgeben
public double[] getAllElements(){
return data;
}
//Ausgabe
public String toString(){
StringBuffer sb=new StringBuffer();
for(int i=0; i<top;i++){
sb.append(data[i]+" ");
}
return sb.toString();
}
}
Danke!
Sind die anderen Operationen korrekt?