Files
hello-algo/ja/codes/ruby/chapter_stack_and_queue/deque.rb
Yudong Jin d7b2277d2b Re-translate the Japanese version (#1871)
* Retranslate Japanese docs with GPT-5.4

* Retranslate Japanese code with GPT-5.4
2026-03-30 07:30:15 +08:00

43 lines
1.4 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
=begin
File: deque.rb
Created Time: 2024-04-06
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
=end
### Driver Code ###
if __FILE__ == $0
# 両端キューを初期化する
# Ruby には組み込みの両端キューがないため、Array を両端キューとして使う
deque = []
# 要素をキューに入れる
deque << 2
deque << 5
deque << 4
# 注意配列であるため、Array#unshift メソッドの時間計算量は O(n) です
deque.unshift(3)
deque.unshift(1)
puts "両端キュー deque = #{deque}"
# 要素にアクセス
peek_first = deque.first
puts "先頭要素 peek_first = #{peek_first}"
peek_last = deque.last
puts "末尾要素 peek_last = #{peek_last}"
# 要素をキューから取り出す
# 配列であるため、Array#shift メソッドの時間計算量は O(n) である
pop_front = deque.shift
puts "先頭から取り出した要素 pop_front = #{pop_front},先頭から取り出した後 deque = #{deque}"
pop_back = deque.pop
puts "末尾から取り出した要素 pop_back = #{pop_back}, 末尾から取り出した後 deque = #{deque}"
# 両端キューの長さを取得
size = deque.length
puts "両端キューの長さ size = #{size}"
# 両端キューが空かどうかを判定
is_empty = size.zero?
puts "両端キューが空かどうか = #{is_empty}"
end