Стек в примере C ++ | Программа и алгоритм стека C ++

Стек в примере C ++ | Сегодняшняя тема — программа C ++ Stack. Стек — это структура данных, которая работает по принципу LIFO (Last in first out). В стопках мы вставляем элемент с одной стороны, а также удаляем элементы только с этой стороны. Стек — это адаптер контейнера, представляющий собой классы, использующие инкапсулированный объект определенного класса контейнера, который предоставляет определенный набор функций-членов для доступа к его элементам.

Стек в 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. Преобразование польских обозначений
    Существует три типа записи:
    1) Инфиксная запись - оператор находится между операндами: x + y
    2) Префиксная запись - Оператор стоит перед операндами: + xy
    3) Постфиксная запись - Оператор стоит после операндов: xy +
  2. Чтобы перевернуть строку
    Строку можно перевернуть, используя стек. Символы строки помещаются в стек до конца строки. Символы всплывают и отображаются. Поскольку последний символ строки помещается, он, наконец, будет напечатан первым.
  3. При вызове функции (подпрограммы)
    Когда функция вызывается, функция вызывается последней, которая будет завершена первой. Это свойство стека. Для стека специально зарезервирована область памяти.

Заключение

Стек - это абстрактная структура данных, которая содержит набор элементов.

Стек реализует механизм LIFO, т.е. элемент, который помещается в конце, выталкивается первым.

Наконец, пример стека в C ++ | Программа и алгоритм стека C ++ завершены.

Рекомендуемые сообщения

Priority Queue in C ++ Example

Стандартная библиотека шаблонов очередей C ++

Программа Deque C ++

Объяснение массивов в C ++

Итераторы в C ++

Оцените статью
nanomode.ru
Добавить комментарий