mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 22:28:40 +08:00 
			
		
		
		
	feat: add ruby code blocks - chapter stack and queue (#1234)
This commit is contained in:
		@ -355,7 +355,32 @@
 | 
				
			|||||||
=== "Ruby"
 | 
					=== "Ruby"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ```ruby title="deque.rb"
 | 
					    ```ruby title="deque.rb"
 | 
				
			||||||
 | 
					    # 初始化双向队列
 | 
				
			||||||
 | 
					    # Ruby 没有内直的双端队列,只能把 Array 当作双端队列来使用
 | 
				
			||||||
 | 
					    deque = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 元素如队
 | 
				
			||||||
 | 
					    deque << 2
 | 
				
			||||||
 | 
					    deque << 5
 | 
				
			||||||
 | 
					    deque << 4
 | 
				
			||||||
 | 
					    # 请注意,由于是数组,Array#unshift 方法的时间复杂度为 O(n)
 | 
				
			||||||
 | 
					    deque.unshift(3)
 | 
				
			||||||
 | 
					    deque.unshift(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 访问元素
 | 
				
			||||||
 | 
					    peek_first = deque.first
 | 
				
			||||||
 | 
					    peek_last = deque.last
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 元素出队
 | 
				
			||||||
 | 
					    # 请注意,由于是数组, Array#shift 方法的时间复杂度为 O(n)
 | 
				
			||||||
 | 
					    pop_front = deque.shift
 | 
				
			||||||
 | 
					    pop_back = deque.pop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 获取双向队列的长度
 | 
				
			||||||
 | 
					    size = deque.length
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 判断双向队列是否为空
 | 
				
			||||||
 | 
					    is_empty = size.zero?
 | 
				
			||||||
    ```
 | 
					    ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Zig"
 | 
					=== "Zig"
 | 
				
			||||||
 | 
				
			|||||||
@ -331,7 +331,29 @@
 | 
				
			|||||||
=== "Ruby"
 | 
					=== "Ruby"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ```ruby title="queue.rb"
 | 
					    ```ruby title="queue.rb"
 | 
				
			||||||
 | 
					    # 初始化队列
 | 
				
			||||||
 | 
					    # Ruby 内置的队列(Thread::Queue) 没有 peek 和遍历方法,可以把 Array 当作队列来使用
 | 
				
			||||||
 | 
					    queue = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 元素入队
 | 
				
			||||||
 | 
					    queue.push(1)
 | 
				
			||||||
 | 
					    queue.push(3)
 | 
				
			||||||
 | 
					    queue.push(2)
 | 
				
			||||||
 | 
					    queue.push(5)
 | 
				
			||||||
 | 
					    queue.push(4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 访问队列元素
 | 
				
			||||||
 | 
					    peek = queue.first
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 元素出队
 | 
				
			||||||
 | 
					    # 清注意,由于是数组,Array#shift 方法时间复杂度为 O(n)
 | 
				
			||||||
 | 
					    pop = queue.shift
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 获取队列的长度
 | 
				
			||||||
 | 
					    size = queue.length
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 判断队列是否为空
 | 
				
			||||||
 | 
					    is_empty = queue.empty?
 | 
				
			||||||
    ```
 | 
					    ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Zig"
 | 
					=== "Zig"
 | 
				
			||||||
 | 
				
			|||||||
@ -325,7 +325,28 @@
 | 
				
			|||||||
=== "Ruby"
 | 
					=== "Ruby"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ```ruby title="stack.rb"
 | 
					    ```ruby title="stack.rb"
 | 
				
			||||||
 | 
					    # 初始化栈
 | 
				
			||||||
 | 
					    # Ruby 没有内置的栈类,可以把 Array 当作栈来使用
 | 
				
			||||||
 | 
					    stack = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 元素入栈
 | 
				
			||||||
 | 
					    stack << 1
 | 
				
			||||||
 | 
					    stack << 3
 | 
				
			||||||
 | 
					    stack << 2
 | 
				
			||||||
 | 
					    stack << 5
 | 
				
			||||||
 | 
					    stack << 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 访问栈顶元素
 | 
				
			||||||
 | 
					    peek = stack.last
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 元素出栈
 | 
				
			||||||
 | 
					    pop = stack.pop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 获取栈的长度
 | 
				
			||||||
 | 
					    size = stack.length
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 判断是否为空
 | 
				
			||||||
 | 
					    is_empty = stack.empty?
 | 
				
			||||||
    ```
 | 
					    ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Zig"
 | 
					=== "Zig"
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user