Стек в примере C ++ | Сегодняшняя тема — программа C ++ Stack. Стек — это структура данных, которая работает по принципу LIFO (Last in first out). В стопках мы вставляем элемент с одной стороны, а также удаляем элементы только с этой стороны. Стек — это адаптер контейнера, представляющий собой классы, использующие инкапсулированный объект определенного класса контейнера, который предоставляет определенный набор функций-членов для доступа к его элементам.
- Стек в C ++
- Разные функции, связанные со стеками
- empty ()
- Синтаксис
- Пример
- Вывод
- size ()
- Синтаксис
- Пример
- Вывод
- top ()
- Синтаксис
- Пример
- Вывод
- push (k)
- Синтаксис
- Пример
- Вывод
- pop ()
- Синтаксис
- Пример
- Вывод
- Ошибки и исключения
- Алгоритм стека C ++
- Операция push () используется для вставки элемента в стек.
- Операция pop () используется для удаления элемента из стека, сначала получения элемента, а затем уменьшения указателя TOP.
- Программа стека C ++
- Приложения Stack
- Заключение
- Рекомендуемые сообщения
Стек в C ++
Стеки — это тип контейнерного адаптера с типом работы LIFO (Last In First Out), где новый элемент добавляется на одном конце, а (вверху) элемент удаляется из только этот конец.
В стеках элементы, которые вставлены изначально, вынимаются из стека, наконец.
Мы может использовать стеки в КПК (выталкивающие автоматы).
Заголовочный файл, необходимый для использования стека в C ++ —
С этим мы можем использовать стек STL.
Разные функции, связанные со стеками
empty ()
Функция empty () возвращает, является ли стек пустым или нет.
Синтаксис
stack_name.empty ()
В этом, мы не передаем никаких параметров, и он возвращает true, если стек пуст, или false в противном случае.
Пример
stack1 = 1,2,3stack1.empty ();
Вывод
False
size ()
Возвращает количество элементов в стеке.
Синтаксис
stack_name.size()
Здесь мы не передаем никаких параметров, и он возвращает количество элементов в контейнере стека.
Пример
stack_1 = 1,2,3,4,5stack_1.size ();
Вывод
5
top ()
Он возвращает ссылка на самый верхний элемент стека.
Синтаксис
stack_name.top ();
В этом случае нам не нужно передавать какой-либо параметр, и он возвращает прямую ссылку на верхний элемент.
Пример
stack_n ame.push (5); stack_name.push (6); stack_name.top ();
Вывод
6
push (k)
Функция push () используется для вставки элементов в стек.
Он добавляет элемент ‘k’ наверху стека.
Синтаксис
stack_name.push (value)
Здесь мы передаем значение в качестве параметра и, как результат, добавляем элемент в стек.
Пример
stack1.push (77) stack1.push (88)
Вывод
77, 88
pop ()
Удаляет самый верхний элемент из стека.
Синтаксис
имя_стека. pop ()
Здесь мы не передаем никаких параметров, эта функция выталкивает самый верхний элемент из стека.
Пример
stack1 = 10,20,30; stack1.pop ();
Вывод
10, 20
Ошибки и исключения
1. Показывает ошибку, если параметр передан.
2. Не показывает гарантии выброса исключения.
Алгоритм стека C ++
В алгоритмах, связанных со стеком, верхняя точка изначально указывает на 0, индекс элементов в стеке начинается с 1, а индекс последнего элемента равен MAX.
INIT_STACK (STACK, TOP) Алгоритм инициализации стека с использованием массива. TOP указывает на самый верхний элемент стека. 1) TOP: = 0; 2) Выход
Операция push () используется для вставки элемента в стек.
PUSH_STACK (STACK, TOP, MAX, ITEM) Алгоритм помещения элемента в стек. 1) ЕСЛИ TOP = MAX, то вывести «Стек заполнен»; Выход; 2) В противном случае TOP: = TOP + 1; /* приращение TOP */СТЕК (TOP): = ITEM; 3) Конец IF 4) Выход
Операция pop () используется для удаления элемента из стека, сначала получения элемента, а затем уменьшения указателя TOP.
POP_STACK (STACK, TOP, ITEM) Алгоритм извлечения элемента из стека. 1) ЕСЛИ TOP = 0, то вывести «Стопка пуста»; Выход; 2) В противном случае ПУНКТ: = СТЕК (ВЕРХНИЙ); TOP: = TOP - 1; 3) Конец IF 4) Выход
IS_FULL (STACK, TOP, MAX, STATUS) Алгоритм проверки того, заполнен стек или нет. STATUS содержит статус результата. 1) ЕСЛИ TOP = MAX, то STATUS: = true; 2) В противном случае СТАТУС: = ложь; 3) Конец IF 4) Выход
IS_EMPTY (STACK, TOP, MAX, STATUS) Алгоритм проверки стека пуст или нет. STATUS содержит статус результата. 1) ЕСЛИ TOP = 0, то STATUS: = true; 2) В противном случае СТАТУС: = ложь; 3) Конец IF 4) Выход
Программа стека C ++
Q1 — Напишите программу для вставки пять элементов в стеке и распечатайте верхний элемент с помощью top (), распечатайте размер стека и проверьте, пуст ли стек или нет.
#include # включить с использованием пространства имен std; int main () {stack stack1; //пустой стек целочисленного типа stack1.push (100); stack1.push (200); stack1.push (300); stack1.push (400); stack1.push (500); coutПосмотреть результат.
![]()
Q2 - Напишите программу для вставки 5 элементов в стек и удаления 2 элементов, а затем распечатайте стек.
#include #include с использованием пространства имен std; int main () {stack stack1; //пустой стек целочисленного типа stack1. толкать (100); stack1.push (200); stack1.push (300); stack1.push (400); stack1.push (500); stack1.pop (); stack1.pop (); while (! stack1.empty ()) {coutСм. результат.
![]()
Приложения Stack
- Преобразование польских обозначений
Существует три типа записи:
1) Инфиксная запись - оператор находится между операндами: x + y
2) Префиксная запись - Оператор стоит перед операндами: + xy
3) Постфиксная запись - Оператор стоит после операндов: xy +- Чтобы перевернуть строку
Строку можно перевернуть, используя стек. Символы строки помещаются в стек до конца строки. Символы всплывают и отображаются. Поскольку последний символ строки помещается, он, наконец, будет напечатан первым.- При вызове функции (подпрограммы)
Когда функция вызывается, функция вызывается последней, которая будет завершена первой. Это свойство стека. Для стека специально зарезервирована область памяти.Заключение
Стек - это абстрактная структура данных, которая содержит набор элементов.
Стек реализует механизм LIFO, т.е. элемент, который помещается в конце, выталкивается первым.
Наконец, пример стека в C ++ | Программа и алгоритм стека C ++ завершены.
Рекомендуемые сообщения
Priority Queue in C ++ Example
Стандартная библиотека шаблонов очередей C ++
Программа Deque C ++
Объяснение массивов в C ++
Итераторы в C ++