Центрдистанционногообучения
ATД стек
•В АТД Стеке можно хранить
произвольные объекты хранит произвольные объекты
•Вставки и удаления следуют за последним элементом в LIFO
•Основные операции работы со стеком :
•push(object): вставка (вталкивание) нового элемента в стек
•object pop(): удаляет из стека (выталкивает) и возвращает последний добавленный элемент
•Вспомогательные операции работы со стеком:
•object top(): возвращает последний вставленный элемент, не удаляя его (чтение элемента)
•integer size(): возвращает количество элементов, которые хранятся в стеке
•boolean isEmpty():
показывает, является ли стек пустым
16 online.mirea.ru
Центрдистанционногообучения
Интерфейс для Стека в Java
•В Java есть интерфейс, соответствующий нашему АТД Stack Требуется импорт для определения класса
•EmptyStackException
•В отличие от встроенного класса Javajava.util.Stack
public interface Stack {
public int size();
public boolean isEmpty();
public Object top() throws
EmptyStackException;
public void push(Object o);
public Object pop() throws
EmptyStackException;
}
17 online.mirea.ru
Центрдистанционногообучения
Исключения при работе со стеком
•Попытка выполнения операции с AТД может иногда вызвать состояние ошибки, называемое исключением
•Исключения, как принято говорить, “выбрасывается" с помощью операции, которая не может быть выполнена !
•В АТД Stack, операции pop() и top() не могут быть выполнены над элементами, например, если стек пуст
•При попытке(на пустом стеке) выполнить в этом случае операции pop() и top() выбрасывает
EmptyStackException
18 online.mirea.ru
Интерфейс Стек в Java Центрдистанционногообучения
import java.util.Stack;
import java.util.EmptyStackException;
class StackExample {
static void showpush(Stack st, int a) { st.push(new Integer(a));
System.out.println("push(" + a + ")"); System.out.println("stack: " + st);
}
static void showpop(Stack st) { System.out.print("pop -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("stack: " + st);
19 |
online.mirea.ru |
} |
|
Центрдистанционногообучения
Интерфейс Стек в Java
public static void main(String args[]) { Stack st = new Stack();
System.out.println("stack: " + st); showpush(st, 42);
showpush(st, 66); showpush(st, 99); showpop(st); showpop(st); showpop(st);
try { showpop(st);
} catch (EmptyStackException e) {
System.out.println("empty
}
}
20
}
stack");
online.mirea.ru