Стек: различия между версиями

Материал из Algocode wiki
Перейти к: навигация, поиск
Строка 2: Строка 2:
 
Стек - структура данных, которая хранит элементы и умеет отвечать на две операции за $O(1)$:
 
Стек - структура данных, которая хранит элементы и умеет отвечать на две операции за $O(1)$:
  
* push(x) - положить элемент x в конец стека
+
* <code>push(x)</code> - положить элемент x в конец стека
* pop() - снять и вернуть элемент, лежащий в конце стека
+
* <code>pop()</code> - снять и вернуть элемент, лежащий в конце стека
  
 
То есть это структура данных, где действия происходят только с элементом, лежащим в конце. Выполняется принцип FILO (First In - Last Out) - последним вынется тот элемент, который мы положили первым, если сначала положить все элементы, а потом все вынуть.
 
То есть это структура данных, где действия происходят только с элементом, лежащим в конце. Выполняется принцип FILO (First In - Last Out) - последним вынется тот элемент, который мы положили первым, если сначала положить все элементы, а потом все вынуть.

Версия 14:26, 18 октября 2019

Стек

Стек - структура данных, которая хранит элементы и умеет отвечать на две операции за $O(1)$:

  • push(x) - положить элемент x в конец стека
  • pop() - снять и вернуть элемент, лежащий в конце стека

То есть это структура данных, где действия происходят только с элементом, лежащим в конце. Выполняется принцип FILO (First In - Last Out) - последним вынется тот элемент, который мы положили первым, если сначала положить все элементы, а потом все вынуть.

Часто для удобства у стека еще есть операции

  • size() - размер стека
  • empty() - проверка на пустоту
  • clear() - очистить стек

В С++ стек уже реализован,

stack<T>stack_name;

, с всеми вышеперечисленными методами.

Задачи на стек