Hi!
Ich möchte einen Stack invertieren, aber irgendwie haut das nicht so richtig hin!
Die Ausgabe ist nicht die gewünschte:
er gibt null-Werte aus, aber eigentlich müsste die Werte von data in data2 hinüberkopiert werden... ???:L
Thomas 3 1 Roland
Stack beinhaltet diesen Wert: true
Stack beinhaltet diesen Wert: true
Stack is leer: false
Im Stack befinden sich im Moment: 4 Elemente
null
null
null
null
Vielleicht kann mir da jemand einen Tipp geben...
Ich möchte einen Stack invertieren, aber irgendwie haut das nicht so richtig hin!
Die Ausgabe ist nicht die gewünschte:
er gibt null-Werte aus, aber eigentlich müsste die Werte von data in data2 hinüberkopiert werden... ???:L
Thomas 3 1 Roland
Stack beinhaltet diesen Wert: true
Stack beinhaltet diesen Wert: true
Stack is leer: false
Im Stack befinden sich im Moment: 4 Elemente
null
null
null
null
Code:
public class Stack {
Object [] data;
Object [] data2;
int top;
int size;
public Stack(int size){
data=new Object[size];
this.size=size;
}
public void push(Object obj) throws OverflowException{
// }
public Object pop() throws UnderflowException{
// }
public boolean isEmpty(){
// }
public int getSize(){
return top;
}
public boolean contains(Object obj){
for(int i=0;i<top;i++){
if(data[i].equals(obj)){
return true;
}
}
return false;
}
//HIER!!
public Object [] invertiere(){
data2=new Object[top];
int j=0;
for(int i=top;i<=0;i--){
data2[j]=data[i];
j++;
}
return data2;
}
public String toString(){
StringBuffer sb=new StringBuffer();
String s="";
for(int i=0;i<top;i++){
sb.append(data[i]);
sb.append(" ");
}
s=sb.toString();
return s;
}
}
Code:
public class StackTest {
public static void main(String [] args) throws Exception{
Stack stack=new Stack(10);
stack.push("Thomas");
stack.push(3);
stack.push(1);
stack.push("Roland");
System.out.println(stack.toString());
boolean contains=stack.contains("Thomas");
System.out.println("Stack beinhaltet diesen Wert: "+ contains);
boolean contains2=stack.contains(3);
System.out.println("Stack beinhaltet diesen Wert: "+ contains2);
boolean isEmpty=stack.isEmpty();
System.out.println("Stack is leer: "+isEmpty);
int anzahlElem=stack.getSize();
System.out.println("Im Stack befinden sich im Moment: "+ anzahlElem + " Elemente");
//HIER
Object [] data2=stack.invertiere();
for(int i=0;i<data2.length;i++){
System.out.println(data2[i]);
}
}
}
Vielleicht kann mir da jemand einen Tipp geben...