C# стек із прикладами Push & Pop
Що таке стек у C#?
Стек — це колекція спеціальних випадків, яка представляє концепцію LIFO (останній прийшов, перший вийшов). Щоб спочатку зрозуміти LIFO, розглянемо приклад. Уявіть собі стопку книг, кожна з яких лежить одна на одній.
Концепція «останньою прийшла першою» у випадку книг означає, що зі стосу книг можна видалити лише найвищу книгу. Неможливо видалити книгу з-поміж них, оскільки тоді це порушить налаштування стека.
Звідси і в C#, стек також працює таким же чином. Елементи додаються в стек один над одним. Процес додавання елемента в стек називається операцією push. Щоб видалити елемент зі стеку, ви також можете видалити самий верхній елемент стека. Ця операція відома як pop.
Давайте детальніше розглянемо операції, доступні для колекції Stack.
Оголошення стека
Стек створюється за допомогою типу даних стека. Ключове слово «новий» використовується для створення об’єкта стека. Потім об’єкт призначається змінній st.
Stack st = new Stack()
Додавання елементів у стек
Метод push використовується для додавання елемента в стек. Загальний синтаксис оператора наведено нижче.
Stack.push(element)
Видалення елементів зі стека
Метод pop використовується для видалення елемента зі стека. Операція pop повертає найвищий елемент стека. Загальний синтаксис оператора наведено нижче
Stack.pop()
Рахувати
Ця властивість використовується для отримання кількості елементів у стеку. Нижче наведено загальний синтаксис цього оператора.
Stack.Count
Містить
Цей метод використовується, щоб побачити, чи присутній елемент у стеку. Нижче наведено загальний синтаксис цього оператора. Оператор поверне значення true, якщо елемент існує, інакше він поверне значення false.
Stack.Contains(element)
Тепер давайте подивимося, як це працює на рівні коду. Весь наведений нижче код буде записано в наш Консольний додаток. Код буде записаний у наш файл Program.cs.
У наведеній нижче програмі ми напишемо код, щоб побачити, як ми можемо використовувати вищезгадані методи.
Приклад 1: метод Stack.Push().
На цьому прикладі ми побачимо
- Як створюється стек.
- Як відобразити елементи стека та використовувати методи Count і Contain.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); foreach (Object obj in st) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The number of elements in the stack " +st.Count); Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3)); Console.ReadKey(); } } }
Пояснення коду: -
- Перший крок використовується для оголошення стека. Тут ми оголошуємо «st» як змінну для зберігання елементів нашого стеку.
- Далі ми додаємо 3 елементи в наш стек. Кожен елемент додається за допомогою методу Push.
- Тепер, оскільки до елементів стека неможливо отримати доступ через позицію індексу, як список масивів, нам потрібно використовувати інший підхід для відображення елементів стека. Об’єкт (obj) — це тимчасова змінна, яка оголошена для зберігання кожного елемента стеку. Потім ми використовуємо оператор foreach для проходження кожного елемента стеку. Для кожного елемента стека значення присвоюється змінній obj. Потім ми використовуємо команду Console.Writeline, щоб відобразити значення на консолі.
- Ми використовуємо властивість Count (ст.кол), щоб отримати кількість елементів у стеку. Ця властивість повертає число. Потім ми виводимо це значення на консоль.
- Потім ми використовуємо метод Contains, щоб перевірити, чи присутнє значення 3 у нашому стеку. Це поверне значення true або false. Потім ми виводимо це повернуте значення на консоль.
Якщо наведений вище код введено належним чином і програма запущена, буде показано наступний результат.
вихід:
З результату ми бачимо, що відображаються елементи стека. Крім того, значення True відображається, щоб сказати, що значення 3 визначено в стеку.
Примітка:: Ви помітили, що останній елемент, вставлений у стек, відображається першим. Це самий верхній елемент стека. Кількість елементів стека також відображається у виведених даних.
Приклад 2: метод Stack.Pop().
Тепер давайте розглянемо функцію «видалити». Ми побачимо код, необхідний для видалення самого верхнього елемента зі стеку.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); st.Pop(); foreach (Object obj in st) { Console.WriteLine(obj); } Console.ReadKey(); } } }
Пояснення коду: -
- Тут ми просто запускаємо метод pop, який використовується для видалення елемента зі стеку.
Якщо наведений вище код введено належним чином і програма запущена, буде показано наступний вихід.
вихід:
Ми бачимо, що елемент 3 видалено зі стеку.
Підсумки
- Стек базується на концепції "останній прийшов - перший вийшов". Операція додавання елемента в стек називається операцією push. Операція видалення елемента в стек називається операцією pop.