Материал: 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