Структура данных Stack основана на принципе Last In First Out (LIFO) и в Java реализует интерфейс Java List.
Основные операции, поддерживаемые стек — это push и pop .
Push добавляет элемент вверху стека.
1 из 3
Pop удаляет самый верхний элемент стека.
v>
1 из 3
Объявление стека в Java
Чтобы объявить стек в Java, сначала начните с ключевого слова stack
, за которым следуют угловые скобки,
, которые содержат тип данных элементов стека. Затем напишите имя стека и, наконец, напишите ключевое слово new
, чтобы выделить память для вновь созданного стека.
Синтаксис для объявления стека в Java это:
. Ключевое слово, за которым следуют угловые скобки, содержит тип данных элементов стека.
Стек stackName = new Stack ();
Методы в классе Stack
-
push ():
Метод
push ()
помещает элемент, переданный в качестве параметра, в верхнюю часть стека. -
pop ():
Метод
pop ()
удаляет и возвращает верхний элемент стека.Исключение
EmptyStackException
выдается, если мы вызываем методpop ()
для пустого стека. -
Метод
peek ()
r возвращает элемент вверху стека, но не удаляет его. -
empty ():
Метод
empty ()
возвращаетtrue
, если стек пуст, в противном случае он возвращаетfalse
. -
поиск (элемент объекта):
search ( )
определяет, существует ли в стеке объект, который является входным параметром функции.Если элемент найден, он возвращает позицию (как
integer
) элемента из вершины стека, в противном случае возвращается -1.
Пример
Ниже приведен пример реализации стека класс в Java:
import java.util. *; //импорт стека classclass MyClass {public static void main (String [] args) {//Создание стека Stack even = new Stack (); //помещаем значения в стек even.push (0); even.push (2); even.push (4); even.push (6); even.push (8); even.push (10); even.push (12); even.push (14); even.push (16); //печать стека System.out.println ("Печать стека перед pop:"); System.out.println (даже); //возвращаем число наверху стека и удаляем его System.out.println ("pop =>" + even.pop ()); System.out.println ("pop =>" + even.pop ()); System.out.println ("pop =>" + even.pop ()); //печать стека System.out.println ("Печать стека после pop:"); System.out.println (даже); //доступ к числу наверху стека, но не удаление его System.out.println ("Число наверху стека =>" + even.peek ()); //проверка, пуст стек или нет System.out.println ("Стек пуст? Ответ:" + even.empty ()); //проверка позиции 8 в стеке System.out.println ("Позиция 8 сверху равна" + even.search (8)); //проверяем, существует ли 20 в стеке System.out.println ("Позиция 20 сверху равна" + even.search (20)); }}