Java Stack – Как мне извлечь() и нажать() несколько элементов из стека?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java Stack – Как мне извлечь() и нажать() несколько элементов из стека?

Сообщение Anonymous »

У меня уже работает класс стека, но сейчас я могу каждый раз извлекать и извлекать только 1 элемент, я хочу иметь возможность извлекать и извлекать несколько элементов одновременно. без многократного использования push и pop. Я пытаюсь создать для этого две функции. Функции pushAll и popN. Нравится:

Код: Выделить всё

public void pushAll (Object all[]) throws StackFullException {...}
public Object [] popN (int n) throws StackEmptyException {...}
Примечание. Входной параметр all представляет собой массив, содержащий все элементы, которые необходимо ввести. Последний элемент вектора должен находиться сверху после укладки.
Если нет места для вставки всех элементов, ни один из них не должен быть вставлен и должно быть вызвано исключение StackFullException.
Метод popN извлекает количество элементов, указанное параметром n, и помещает их в массив для возврата.
Если в стеке нет запрошенного количества элементов, ни один элемент не раскладывается и Выдается исключение StackEmptyException.
Я часами безуспешно пытаюсь реализовать свою логику.
Вот мой класс Stack:

Код: Выделить всё

public class Stack extends RuntimeException {
public static final int CAPACITY = 1000;
private int capacity;
private Object elements[];
private int top = -1;

public Stack(int capacity){
if (capacity>0){
this.capacity=capacity;
elements=new Object[capacity];
} else {
this.capacity = CAPACITY;
elements = new Object[CAPACITY];
}
}
public Stack(){
this(CAPACITY);
}

public boolean isEmpty(){
return (top < 0);
}

public boolean isFull(){
return (top == capacity - 1);
}

public void push(Object o) throws StackFullException {
if (isFull()){
throw new StackFullException("Stack Overflow!");
}
else {
top++;
elements[top] = o;
}
}

public Object pop() throws StackEmptyException {
Object elem;
if (isEmpty()){
throw new StackEmptyException("Stack Underflow!");
}
else {
elem = elements[top];
elements[top] = null;
top--;
return (elem);
}
}

public Object top() throws StackEmptyException {
if (isEmpty()){
throw new StackEmptyException("Stack Underflow!");
}
else {
return (elements[top]);
}
}

public int size(){
return (top + 1);
};

public Object[] getElements() {
return elements;
}

@Override
public String toString(){
String string = "[";
for (int i = 0; i < this.capacity; i++){
Object element = this.elements[i];

if(element != null){
string += element + ",";
}
}
string =  string.substring(0, string.length() - 1);
string += "]";
return string;
}

public void pushAll (Object all[]) throws StackFullException {

}
public Object [] popN (int n) throws StackEmptyException {

}
}
Можете ли вы помочь мне создать функции pushAll и popN?

Подробнее здесь: https://stackoverflow.com/questions/697 ... om-a-stack
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»