У світі комп'ютерних наук структури даних є основою для ефективного зберігання та обробки інформації. Однією з найпоширеніших структур даних є стек. У цій статті ми розглянемо, що таке стек, як він працює, і як реалізувати його в Ruby. Давайте зануримось у цю тему!
Стек — це структура даних, яка працює за принципом "останній прийшов — перший вийшов" (LIFO, Last In First Out). Це означає, що останній елемент, який був доданий до стека, буде першим, який буде видалений. Стек можна уявити як стопку тарілок: ви можете додати нову тарілку лише зверху і зняти лише верхню тарілку.
Стек підтримує кілька основних операцій:
Тепер, коли ми розуміємо, що таке стек і які операції він підтримує, давайте розглянемо, як реалізувати стек у Ruby. Ми створимо клас Stack
, який реалізує всі основні операції.
class Stack def initialize @elements = [] end def push(element) @elements.push(element) end def pop raise "Stack is empty" if is_empty? @elements.pop end def peek raise "Stack is empty" if is_empty? @elements.last end def is_empty? @elements.empty? end end
У нашому класі Stack
ми використовуємо масив @elements
для зберігання елементів стека. Давайте розглянемо кожну з операцій:
true
, якщо стек порожній, і false
в іншому випадку.Тепер, коли ми реалізували стек, давайте подивимося, як його можна використовувати в Ruby.
stack = Stack.new stack.push(1) stack.push(2) stack.push(3) puts "Верхній елемент: #{stack.peek}" # Виведе: Верхній елемент: 3 puts "Видалений елемент: #{stack.pop}" # Виведе: Видалений елемент: 3 puts "Верхній елемент після видалення: #{stack.peek}" # Виведе: Верхній елемент після видалення: 2 puts "Чи стек порожній? #{stack.is_empty?}" # Виведе: Чи стек порожній? false stack.pop stack.pop puts "Чи стек порожній після видалення всіх елементів? #{stack.is_empty?}" # Виведе: Чи стек порожній після видалення всіх елементів? true
У цьому прикладі ми створюємо новий стек і додаємо до нього три елементи: 1, 2 та 3. Потім ми використовуємо метод peek
, щоб подивитися, який елемент знаходиться на верху стека. Після цього ми видаляємо верхній елемент за допомогою pop
і знову перевіряємо верхній елемент. Нарешті, ми перевіряємо, чи стек порожній, після видалення всіх елементів.
Стек є дуже корисною структурою даних, яка знаходить застосування в багатьох сферах програмування:
Стек — це потужна структура даних, яка є основою для багатьох алгоритмів і програмних рішень. У цій статті ми розглянули, що таке стек, як його реалізувати в Ruby, і де його можна використовувати. Сподіваємося, що ця інформація була корисною для вас, і ви зможете застосувати знання про стеки у своїх проектах!
© 2024 RailsInsights. All rights reserved.