Главная » Java, Структуры данных и алгоритмы » Интерфейс Stack

0

Класс Stack является одним из’«встроенных» классов Java, который входит в пакет java.util. Класс java.util.Stack является структурой данных объединяющей общие объекты Java, а также методы push(obj), popQ peek() (эквивалент top()), size() и empty() (эквивалент isEmptyO). Методь pop() и peek() могут генерировать исключение StackEmptyException, если при обращении к ним стек пуст. Хотя использование встроенного класа java.util.Stack является достаточно понятным, все же рассмотрим, каки\ образом изначально происходит создание и реализация стека.

В Java реализация абстрактного типа данных осуществляется в двг этапа. На первом этапе описывается интерфейс прикладного программирования (Application Programming Interface — API), или просто интерфейс в котором перечислены имена методов, поддерживаемые данным АТД а также способы их объявления и использования. Целиком Java-интерфейс стека представлен фрагментом кода 4.1. Следует отметить, что приведенный интерфейс является обобщенным, так как в нем указывается, что в стек могут включаться объекты произвольных и, возможно, неоднородных классов.

*                Интерфейс стека: совокупность объектов,

*                которые могут быть добавлены и удалены согласно принципу

*                «последним пришел — первым ушел».

*               

*                автор Роберто Тамассия

*                автор Майкл Гудрич

*                см. StackEmptyException

7

public interface Stack {

*                      возвращает true, если стек пуст, в противном случае — false.

7

public int size();

*                      возвращает последний элемент стека. 7

public boolean isEmpty(); Г

*                      возвращает количество элементов в стеке.

*                      исключение StackEmptyException, если стек пуст.

7

public Object top()

throws StackEmptyException;

г

/* Исключительная ситуация возникает при попытке выполнить методы

/* рор() и top(), если стек пуст.

7

public class StackEmptyException extends RuntimeException { public StackEmptyException(String err) { . ‘super(err),

}

}

Фрагмент кода 4.2. Обработка исключительной ситуации при обращении методами рор() и top() интерфейса Stack к пустому* стеку

Для того чтобы приведенный АТД можно было использовать, необходим конкретный класс, в котором будут реализованы все методы интерфейса, связанного с этим АТД. В следующем параграфе рписывается несложная реализация интерфейса Stack.

Источник: Гудрич М.Т. Г93 Структуры данных и алгоритмы в Java / М.Т. Гудрич, Р. Тамассия; Пер. с англ. A.M. Чернухо. — Мн.: Новое знание, 2003. — 671 е.: ил.

По теме:

  • Комментарии