mirror of
https://github.com/krahets/hello-algo.git
synced 2025-11-02 12:58:42 +08:00
Many bug fixes and improvements (#1270)
* Add Ruby and Kotlin icons Add the avatar of @curtishd * Update README * Synchronize zh-hant and zh versions. * Translate the pythontutor blocks to traditional Chinese * Fix en/mkdocs.yml * Update the landing page of the en version. * Fix the Dockerfile * Refine the en landingpage * Fix en landing page * Reset the README.md
This commit is contained in:
42
zh-hant/codes/ruby/chapter_stack_and_queue/deque.rb
Normal file
42
zh-hant/codes/ruby/chapter_stack_and_queue/deque.rb
Normal file
@ -0,0 +1,42 @@
|
||||
=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
|
||||
Reference in New Issue
Block a user