Материал: 7 - Презентация - Дженерики, Абстрактные типы данных, Стек, Очередь

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Центрдистанционногообучения

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

Источник: https://studfile.net/preview/16403816/