У світі комп'ютерних наук структури даних є основою для ефективного зберігання та обробки інформації. Однією з найпоширеніших структур даних є стек. У цій статті ми розглянемо, що таке стек, як він працює, і як реалізувати його в 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.