Hallo
Ich muss eine Klasse StackDynamic<E> ( verwendet intern eine dynamische Datenstruktur ) implementieren die die Methoden
import java.util.ArrayList;
public class StackArray<E> {
private ArrayList<E> stack;
public StackArray () {
this.stack = new ArrayList<>();
}
public void push (E item) {
stack.add(item);
}
public E pop () {
if (!isEmpty()) {
E h = stack.get(size() - 1);
stack.remove(size() - 1);
return h;
}
return null;
}
public E peek () {
if (!isEmpty()) {
return stack.get(size() - 1);
}
return null;
}
public boolean isEmpty() {
return stack.isEmpty();
}
public int size () {
return stack.size();
}
public String toString () {
String s = "[";
for (int i = size() - 1; i >= 0; i--) {
E h = stack.get(i);
s = s + h + ", ";
}
return s + "]";
}
public BasicIterator<E> getIterator() {
return new MyIterator();
}
private class MyIterator implements BasicIterator<E> {
private int now;
MyIterator () {
if (stack.size() > 0) {
this.now = stack.size() - 1;
}
else {
this.now = -1;
}
}
public boolean hasNext() {
if (now <= 0) {
return false;
}
else {
return true;
}
}
public E getNext() {
if (!hasNext()) {
return null;
}
else {
now = now - 1;
return stack.get(now);
}
}
}
}
Aber ich verstehe nicht wie ich peekAt() und remove() hinzufügen soll. Kann mir bitte wer helfen? 😔
Ich muss eine Klasse StackDynamic<E> ( verwendet intern eine dynamische Datenstruktur ) implementieren die die Methoden
- public E remove (int n) //removes the n-th item of this stack and returns it (head has number 0)//return null, if no n-th item exists
- public E peekAt (int n) //returns the n-th item of this stack without removing it (head has number 0)//returns null, if no n-th item exists
import java.util.ArrayList;
public class StackArray<E> {
private ArrayList<E> stack;
public StackArray () {
this.stack = new ArrayList<>();
}
public void push (E item) {
stack.add(item);
}
public E pop () {
if (!isEmpty()) {
E h = stack.get(size() - 1);
stack.remove(size() - 1);
return h;
}
return null;
}
public E peek () {
if (!isEmpty()) {
return stack.get(size() - 1);
}
return null;
}
public boolean isEmpty() {
return stack.isEmpty();
}
public int size () {
return stack.size();
}
public String toString () {
String s = "[";
for (int i = size() - 1; i >= 0; i--) {
E h = stack.get(i);
s = s + h + ", ";
}
return s + "]";
}
public BasicIterator<E> getIterator() {
return new MyIterator();
}
private class MyIterator implements BasicIterator<E> {
private int now;
MyIterator () {
if (stack.size() > 0) {
this.now = stack.size() - 1;
}
else {
this.now = -1;
}
}
public boolean hasNext() {
if (now <= 0) {
return false;
}
else {
return true;
}
}
public E getNext() {
if (!hasNext()) {
return null;
}
else {
now = now - 1;
return stack.get(now);
}
}
}
}
Aber ich verstehe nicht wie ich peekAt() und remove() hinzufügen soll. Kann mir bitte wer helfen? 😔