Що таке стек у C #?
Стек - це колекція особливих випадків, яка представляє концепцію останнього виходу (LIFO). Щоб спочатку зрозуміти LIFO, візьмемо приклад. Уявіть собі стопку книг, кожна з яких тримається одна на одній.
Концепція останнього першого виходу у випадку книг означає, що зі стопки книг можна вилучити лише найпопулярніші книги. Видалити книгу з-поміж них неможливо, оскільки тоді це заважатиме налаштуванню стека.
Отже, в C # стек також працює так само. Елементи додаються до стопки, один зверху один на одного. Процес додавання елемента в стек називається операцією натискання. Щоб видалити елемент зі стека, ви також можете видалити самий верхній елемент стека. Ця операція відома як поп.
Давайте розглянемо операції, доступні для колекції Stack, більш детально.
Декларація стека
Стек створюється за допомогою типу даних стека. Ключове слово "new" використовується для створення об'єкта стека. Потім об’єкт призначається змінній st.
Stack st = new Stack()
Додавання елементів у стек
Метод push використовується для додавання елемента в стек. Загальний синтаксис висловлювання наведено нижче.
Stack.push(element)
Видалення елементів зі стека
Метод pop використовується для видалення елемента зі стека. Операція pop поверне найвищий елемент стека. Загальний синтаксис висловлювання наведено нижче
Stack.pop()
Рахувати
Ця властивість використовується для отримання кількості елементів у стеку. Нижче наведено загальний синтаксис цього висловлювання.
Stack.Count
Містить
Цей метод використовується для перевірки наявності елемента в стеку. Нижче наведено загальний синтаксис цього висловлювання. Оператор поверне true, якщо елемент існує, інакше він поверне значення false.
Stack.Contains(element)
Тепер давайте подивимось, як це працює на рівні коду. Весь згаданий нижче код буде записаний до нашої програми Console. Код буде записаний у наш файл Program.cs.
У наведеній нижче програмі ми напишемо код, щоб побачити, як ми можемо використовувати вищезазначені методи.
Приклад 1
У цьому прикладі ми побачимо
- Як створюється стек.
- Як відобразити елементи стека та використовувати методи Count and 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 ( st.count ), щоб отримати кількість елементів у стосі. Ця властивість поверне номер. Потім ми відображаємо це значення на консолі.
- Потім ми використовуємо метод Contains, щоб перевірити, чи є значення 3 у нашому стеку. Це поверне або справжнє, або хибне значення. Потім ми відображаємо це повернене значення на консоль.
Якщо вищевказаний код введено належним чином і програму запущено, відобразиться наступний результат.
Вихід:
З виходу ми бачимо, що відображаються елементи стека. Крім того, відображається значення True, щоб сказати, що значення 3 визначено в стеку.
Примітка : Ви помітили, що останній елемент, штовхнутий у стек, відображається першим. Це самий верхній елемент стека. Кількість елементів стека також відображається у вихідних даних.
Приклад 2
А тепер давайте розглянемо функціонал "видалення". Ми побачимо код, необхідний для видалення самого верхнього елемента зі стека.
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 був вилучений зі стопки.
Резюме
- Стек базується на останній у першій концепції. Операція додавання елемента в стек називається операцією натискання. Операція видалення елемента в стек називається операцією pop.