跳转到正文

Ruby 数据结构深度解析 ​

Ruby 将“万物皆对象”与强大的 Enumerable 模块完美结合:

  • 原生动态数组 (Array):既可作为随机访问列表,也可原生作为栈 (push/pop) 和双端队列 (unshift/shift)。
  • 哈希与集合 (Hash / Set):支持确定插入顺序与任意可哈希对象键。

📊 核心容器特征 ​

容器Ruby 类型典型复杂度特征
动态数组Array索引 $O(1)$,两端操作 $O(1)$灵活内置栈与队列操作
哈希字典Hash增删查平均 $O(1)$插入有序,支持默认值块
集合Set增删查平均 $O(1)$集合论运算

1. 线性结构:Ruby Array 动态栈与双端操作 ​

rb
puts "=== Ruby Array & Deque Demo ==="
arr = [10, 20]
arr.push(30)
raise "Size error" unless arr.length == 3
raise "Index error" unless arr[1] == 20
raise "Pop error" unless arr.pop == 30

deque = ["center"]
deque.unshift("front")
deque.push("back")
raise "Deque error" unless deque.first == "front" && deque.last == "back"

puts "Ruby Array: #{arr}, Deque: #{deque}"
puts "Ruby Dynamic Array tests passed successfully."
🐳 Docker Verified📋ruby:3.3-alpine
Exit Code: 0
=== Ruby Array & Deque Demo ===
Ruby Array: [10, 20], Deque: ["front", "center", "back"]
Ruby Dynamic Array tests passed successfully.

Released under the MIT License.