mirror of
https://github.com/krahets/hello-algo.git
synced 2025-11-02 12:58:42 +08:00
chore: update driver code (#1265)
This commit is contained in:
@ -109,36 +109,37 @@ class ArrayDeque
|
||||
end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化双向队列
|
||||
deque = ArrayDeque.new(10)
|
||||
deque.push_last(3)
|
||||
deque.push_last(2)
|
||||
deque.push_last(5)
|
||||
puts "双向队列 deque = #{deque.to_array}"
|
||||
|
||||
# 初始化双向队列
|
||||
deque = ArrayDeque.new(10)
|
||||
deque.push_last(3)
|
||||
deque.push_last(2)
|
||||
deque.push_last(5)
|
||||
puts "双向队列 deque = #{deque.to_array}"
|
||||
# 访问元素
|
||||
peek_first = deque.peek_first
|
||||
puts "队首元素 peek_first = #{peek_first}"
|
||||
peek_last = deque.peek_last
|
||||
puts "队尾元素 peek_last = #{peek_last}"
|
||||
|
||||
# 访问元素
|
||||
peek_first = deque.peek_first
|
||||
puts "队首元素 peek_first = #{peek_first}"
|
||||
peek_last = deque.peek_last
|
||||
puts "队尾元素 peek_last = #{peek_last}"
|
||||
# 元素入队
|
||||
deque.push_last(4)
|
||||
puts "元素 4 队尾入队后 deque = #{deque.to_array}"
|
||||
deque.push_first(1)
|
||||
puts "元素 1 队尾入队后 deque = #{deque.to_array}"
|
||||
|
||||
# 元素入队
|
||||
deque.push_last(4)
|
||||
puts "元素 4 队尾入队后 deque = #{deque.to_array}"
|
||||
deque.push_first(1)
|
||||
puts "元素 1 队尾入队后 deque = #{deque.to_array}"
|
||||
# 元素出队
|
||||
pop_last = deque.pop_last
|
||||
puts "队尾出队元素 = #{pop_last},队尾出队后 deque = #{deque.to_array}"
|
||||
pop_first = deque.pop_first
|
||||
puts "队尾出队元素 = #{pop_first},队尾出队后 deque = #{deque.to_array}"
|
||||
|
||||
# 元素出队
|
||||
pop_last = deque.pop_last
|
||||
puts "队尾出队元素 = #{pop_last},队尾出队后 deque = #{deque.to_array}"
|
||||
pop_first = deque.pop_first
|
||||
puts "队尾出队元素 = #{pop_first},队尾出队后 deque = #{deque.to_array}"
|
||||
# 获取双向队列的长度
|
||||
size = deque.size
|
||||
puts "双向队列长度 size = #{size}"
|
||||
|
||||
# 获取双向队列的长度
|
||||
size = deque.size
|
||||
puts "双向队列长度 size = #{size}"
|
||||
|
||||
# 判断双向队列是否为空
|
||||
is_empty = deque.is_empty?
|
||||
puts "双向队列是否为空 = #{is_empty}"
|
||||
# 判断双向队列是否为空
|
||||
is_empty = deque.is_empty?
|
||||
puts "双向队列是否为空 = #{is_empty}"
|
||||
end
|
||||
|
||||
@ -69,38 +69,39 @@ class ArrayQueue
|
||||
end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化队列
|
||||
queue = ArrayQueue.new(10)
|
||||
|
||||
# 初始化队列
|
||||
queue = ArrayQueue.new(10)
|
||||
# 元素入队
|
||||
queue.push(1)
|
||||
queue.push(3)
|
||||
queue.push(2)
|
||||
queue.push(5)
|
||||
queue.push(4)
|
||||
puts "队列 queue = #{queue.to_array}"
|
||||
|
||||
# 元素入队
|
||||
queue.push(1)
|
||||
queue.push(3)
|
||||
queue.push(2)
|
||||
queue.push(5)
|
||||
queue.push(4)
|
||||
puts "队列 queue = #{queue.to_array}"
|
||||
# 访问队首元素
|
||||
peek = queue.peek
|
||||
puts "队首元素 peek = #{peek}"
|
||||
|
||||
# 访问队首元素
|
||||
peek = queue.peek
|
||||
puts "队首元素 peek = #{peek}"
|
||||
# 元素出队
|
||||
pop = queue.pop
|
||||
puts "出队元素 pop = #{pop}"
|
||||
puts "出队后 queue = #{queue.to_array}"
|
||||
|
||||
# 元素出队
|
||||
pop = queue.pop
|
||||
puts "出队元素 pop = #{pop}"
|
||||
puts "出队后 queue = #{queue.to_array}"
|
||||
# 获取队列的长度
|
||||
size = queue.size
|
||||
puts "队列长度 size = #{size}"
|
||||
|
||||
# 获取队列的长度
|
||||
size = queue.size
|
||||
puts "队列长度 size = #{size}"
|
||||
# 判断队列是否为空
|
||||
is_empty = queue.is_empty?
|
||||
puts "队列是否为空 = #{is_empty}"
|
||||
|
||||
# 判断队列是否为空
|
||||
is_empty = queue.is_empty?
|
||||
puts "队列是否为空 = #{is_empty}"
|
||||
|
||||
# 测试环形数组
|
||||
for i in 0...10
|
||||
queue.push(i)
|
||||
queue.pop
|
||||
puts "第 #{i} 轮入队 + 出队后 queue = #{queue.to_array}"
|
||||
# 测试环形数组
|
||||
for i in 0...10
|
||||
queue.push(i)
|
||||
queue.pop
|
||||
puts "第 #{i} 轮入队 + 出队后 queue = #{queue.to_array}"
|
||||
end
|
||||
end
|
||||
|
||||
@ -47,31 +47,32 @@ class ArrayStack
|
||||
end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化栈
|
||||
stack = ArrayStack.new
|
||||
|
||||
# 初始化栈
|
||||
stack = ArrayStack.new
|
||||
# 元素入栈
|
||||
stack.push(1)
|
||||
stack.push(3)
|
||||
stack.push(2)
|
||||
stack.push(5)
|
||||
stack.push(4)
|
||||
puts "栈 stack = #{stack.to_array}"
|
||||
|
||||
# 元素入栈
|
||||
stack.push(1)
|
||||
stack.push(3)
|
||||
stack.push(2)
|
||||
stack.push(5)
|
||||
stack.push(4)
|
||||
puts "栈 stack = #{stack.to_array}"
|
||||
# 访问栈顶元素
|
||||
peek = stack.peek
|
||||
puts "栈顶元素 peek = #{peek}"
|
||||
|
||||
# 访问栈顶元素
|
||||
peek = stack.peek
|
||||
puts "栈顶元素 peek = #{peek}"
|
||||
# 元素出栈
|
||||
pop = stack.pop
|
||||
puts "出栈元素 pop = #{pop}"
|
||||
puts "出栈后 stack = #{stack.to_array}"
|
||||
|
||||
# 元素出栈
|
||||
pop = stack.pop
|
||||
puts "出栈元素 pop = #{pop}"
|
||||
puts "出栈后 stack = #{stack.to_array}"
|
||||
# 获取栈的长度
|
||||
size = stack.size
|
||||
puts "栈的长度 size = #{size}"
|
||||
|
||||
# 获取栈的长度
|
||||
size = stack.size
|
||||
puts "栈的长度 size = #{size}"
|
||||
|
||||
# 判断是否为空
|
||||
is_empty = stack.is_empty?
|
||||
puts "栈是否为空 = #{is_empty}"
|
||||
# 判断是否为空
|
||||
is_empty = stack.is_empty?
|
||||
puts "栈是否为空 = #{is_empty}"
|
||||
end
|
||||
|
||||
@ -5,37 +5,38 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
=end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化双向队列
|
||||
# Ruby 没有内直的双端队列,只能把 Array 当作双端队列来使用
|
||||
deque = []
|
||||
|
||||
# 初始化双向队列
|
||||
# Ruby 没有内直的双端队列,只能把 Array 当作双端队列来使用
|
||||
deque = []
|
||||
# 元素如队
|
||||
deque << 2
|
||||
deque << 5
|
||||
deque << 4
|
||||
# 请注意,由于是数组,Array#unshift 方法的时间复杂度为 O(n)
|
||||
deque.unshift(3)
|
||||
deque.unshift(1)
|
||||
puts "双向队列 deque = #{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}"
|
||||
|
||||
# 访问元素
|
||||
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}"
|
||||
|
||||
# 元素出队
|
||||
# 请注意,由于是数组, 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}"
|
||||
|
||||
# 获取双向队列的长度
|
||||
size = deque.length
|
||||
puts "双向队列长度 size = #{size}"
|
||||
|
||||
# 判断双向队列是否为空
|
||||
is_empty = size.zero?
|
||||
puts "双向队列是否为空 = #{is_empty}"
|
||||
# 判断双向队列是否为空
|
||||
is_empty = size.zero?
|
||||
puts "双向队列是否为空 = #{is_empty}"
|
||||
end
|
||||
|
||||
@ -132,36 +132,37 @@ class LinkedListDeque
|
||||
end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化双向队列
|
||||
deque = LinkedListDeque.new
|
||||
deque.push_last(3)
|
||||
deque.push_last(2)
|
||||
deque.push_last(5)
|
||||
puts "双向队列 deque = #{deque.to_array}"
|
||||
|
||||
# 初始化双向队列
|
||||
deque = LinkedListDeque.new
|
||||
deque.push_last(3)
|
||||
deque.push_last(2)
|
||||
deque.push_last(5)
|
||||
puts "双向队列 deque = #{deque.to_array}"
|
||||
# 访问元素
|
||||
peek_first = deque.peek_first
|
||||
puts "队首元素 peek_first = #{peek_first}"
|
||||
peek_last = deque.peek_last
|
||||
puts "队首元素 peek_last = #{peek_last}"
|
||||
|
||||
# 访问元素
|
||||
peek_first = deque.peek_first
|
||||
puts "队首元素 peek_first = #{peek_first}"
|
||||
peek_last = deque.peek_last
|
||||
puts "队首元素 peek_last = #{peek_last}"
|
||||
# 元素入队
|
||||
deque.push_last(4)
|
||||
puts "元素 4 队尾入队后 deque = #{deque.to_array}"
|
||||
deque.push_first(1)
|
||||
puts "元素 1 队首入队后 deque = #{deque.to_array}"
|
||||
|
||||
# 元素入队
|
||||
deque.push_last(4)
|
||||
puts "元素 4 队尾入队后 deque = #{deque.to_array}"
|
||||
deque.push_first(1)
|
||||
puts "元素 1 队首入队后 deque = #{deque.to_array}"
|
||||
# 元素出队
|
||||
pop_last = deque.pop_last
|
||||
puts "队尾出队元素 = #{pop_last}, 队尾出队后 deque = #{deque.to_array}"
|
||||
pop_first = deque.pop_first
|
||||
puts "队首出队元素 = #{pop_first},队首出队后 deque = #{deque.to_array}"
|
||||
|
||||
# 元素出队
|
||||
pop_last = deque.pop_last
|
||||
puts "队尾出队元素 = #{pop_last}, 队尾出队后 deque = #{deque.to_array}"
|
||||
pop_first = deque.pop_first
|
||||
puts "队首出队元素 = #{pop_first},队首出队后 deque = #{deque.to_array}"
|
||||
# 获取双向队列的长度
|
||||
size = deque.size
|
||||
puts "双向队列长度 size = #{size}"
|
||||
|
||||
# 获取双向队列的长度
|
||||
size = deque.size
|
||||
puts "双向队列长度 size = #{size}"
|
||||
|
||||
# 判断双向队列是否为空
|
||||
is_empty = deque.is_empty?
|
||||
puts "双向队列是否为空 = #{is_empty}"
|
||||
# 判断双向队列是否为空
|
||||
is_empty = deque.is_empty?
|
||||
puts "双向队列是否为空 = #{is_empty}"
|
||||
end
|
||||
|
||||
@ -70,31 +70,32 @@ class LinkedListQueue
|
||||
end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化队列
|
||||
queue = LinkedListQueue.new
|
||||
|
||||
# 初始化队列
|
||||
queue = LinkedListQueue.new
|
||||
# 元素如队
|
||||
queue.push(1)
|
||||
queue.push(3)
|
||||
queue.push(2)
|
||||
queue.push(5)
|
||||
queue.push(4)
|
||||
puts "队列 queue = #{queue.to_array}"
|
||||
|
||||
# 元素如队
|
||||
queue.push(1)
|
||||
queue.push(3)
|
||||
queue.push(2)
|
||||
queue.push(5)
|
||||
queue.push(4)
|
||||
puts "队列 queue = #{queue.to_array}"
|
||||
# 访问队首元素
|
||||
peek = queue.peek
|
||||
puts "队首元素 front = #{peek}"
|
||||
|
||||
# 访问队首元素
|
||||
peek = queue.peek
|
||||
puts "队首元素 front = #{peek}"
|
||||
# 元素出队
|
||||
pop_front = queue.pop
|
||||
puts "出队元素 pop = #{pop_front}"
|
||||
puts "出队后 queue = #{queue.to_array}"
|
||||
|
||||
# 元素出队
|
||||
pop_front = queue.pop
|
||||
puts "出队元素 pop = #{pop_front}"
|
||||
puts "出队后 queue = #{queue.to_array}"
|
||||
# 获取队列的长度
|
||||
size = queue.size
|
||||
puts "队列长度 size = #{size}"
|
||||
|
||||
# 获取队列的长度
|
||||
size = queue.size
|
||||
puts "队列长度 size = #{size}"
|
||||
|
||||
# 判断队列是否为空
|
||||
is_empty = queue.is_empty?
|
||||
puts "队列是否为空 = #{is_empty}"
|
||||
# 判断队列是否为空
|
||||
is_empty = queue.is_empty?
|
||||
puts "队列是否为空 = #{is_empty}"
|
||||
end
|
||||
|
||||
@ -56,31 +56,32 @@ class LinkedListStack
|
||||
end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化栈
|
||||
stack = LinkedListStack.new
|
||||
|
||||
# 初始化栈
|
||||
stack = LinkedListStack.new
|
||||
# 元素入栈
|
||||
stack.push(1)
|
||||
stack.push(3)
|
||||
stack.push(2)
|
||||
stack.push(5)
|
||||
stack.push(4)
|
||||
puts "栈 stack = #{stack.to_array}"
|
||||
|
||||
# 元素入栈
|
||||
stack.push(1)
|
||||
stack.push(3)
|
||||
stack.push(2)
|
||||
stack.push(5)
|
||||
stack.push(4)
|
||||
puts "栈 stack = #{stack.to_array}"
|
||||
# 访问栈顶元素
|
||||
peek = stack.peek
|
||||
puts "栈顶元素 peek = #{peek}"
|
||||
|
||||
# 访问栈顶元素
|
||||
peek = stack.peek
|
||||
puts "栈顶元素 peek = #{peek}"
|
||||
# 元素出栈
|
||||
pop = stack.pop
|
||||
puts "出栈元素 pop = #{pop}"
|
||||
puts "出栈后 stack = #{stack.to_array}"
|
||||
|
||||
# 元素出栈
|
||||
pop = stack.pop
|
||||
puts "出栈元素 pop = #{pop}"
|
||||
puts "出栈后 stack = #{stack.to_array}"
|
||||
# 获取栈的长度
|
||||
size = stack.size
|
||||
puts "栈的长度 size = #{size}"
|
||||
|
||||
# 获取栈的长度
|
||||
size = stack.size
|
||||
puts "栈的长度 size = #{size}"
|
||||
|
||||
# 判断是否为空
|
||||
is_empty = stack.is_empty?
|
||||
puts "栈是否为空 = #{is_empty}"
|
||||
# 判断是否为空
|
||||
is_empty = stack.is_empty?
|
||||
puts "栈是否为空 = #{is_empty}"
|
||||
end
|
||||
|
||||
@ -5,33 +5,34 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
=end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化队列
|
||||
# Ruby 内置的队列(Thread::Queue) 没有 peek 和遍历方法,可以把 Array 当作队列来使用
|
||||
queue = []
|
||||
|
||||
# 初始化队列
|
||||
# Ruby 内置的队列(Thread::Queue) 没有 peek 和遍历方法,可以把 Array 当作队列来使用
|
||||
queue = []
|
||||
# 元素入队
|
||||
queue.push(1)
|
||||
queue.push(3)
|
||||
queue.push(2)
|
||||
queue.push(5)
|
||||
queue.push(4)
|
||||
puts "队列 queue = #{queue}"
|
||||
|
||||
# 元素入队
|
||||
queue.push(1)
|
||||
queue.push(3)
|
||||
queue.push(2)
|
||||
queue.push(5)
|
||||
queue.push(4)
|
||||
puts "队列 queue = #{queue}"
|
||||
# 访问队列元素
|
||||
peek = queue.first
|
||||
puts "队首元素 peek = #{peek}"
|
||||
|
||||
# 访问队列元素
|
||||
peek = queue.first
|
||||
puts "队首元素 peek = #{peek}"
|
||||
# 元素出队
|
||||
# 清注意,由于是数组,Array#shift 方法时间复杂度为 O(n)
|
||||
pop = queue.shift
|
||||
puts "出队元素 pop = #{pop}"
|
||||
puts "出队后 queue = #{queue}"
|
||||
|
||||
# 元素出队
|
||||
# 清注意,由于是数组,Array#shift 方法时间复杂度为 O(n)
|
||||
pop = queue.shift
|
||||
puts "出队元素 pop = #{pop}"
|
||||
puts "出队后 queue = #{queue}"
|
||||
# 获取队列的长度
|
||||
size = queue.length
|
||||
puts "队列长度 size = #{size}"
|
||||
|
||||
# 获取队列的长度
|
||||
size = queue.length
|
||||
puts "队列长度 size = #{size}"
|
||||
|
||||
# 判断队列是否为空
|
||||
is_empty = queue.empty?
|
||||
puts "队列是否为空 = #{is_empty}"
|
||||
# 判断队列是否为空
|
||||
is_empty = queue.empty?
|
||||
puts "队列是否为空 = #{is_empty}"
|
||||
end
|
||||
|
||||
@ -5,32 +5,33 @@ Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
=end
|
||||
|
||||
### Driver Code ###
|
||||
if __FILE__ == $0
|
||||
# 初始化栈
|
||||
# Ruby 没有内置的栈类,可以把 Array 当作栈来使用
|
||||
stack = []
|
||||
|
||||
# 初始化栈
|
||||
# Ruby 没有内置的栈类,可以把 Array 当作栈来使用
|
||||
stack = []
|
||||
# 元素入栈
|
||||
stack << 1
|
||||
stack << 3
|
||||
stack << 2
|
||||
stack << 5
|
||||
stack << 4
|
||||
puts "栈 stack = #{stack}"
|
||||
|
||||
# 元素入栈
|
||||
stack << 1
|
||||
stack << 3
|
||||
stack << 2
|
||||
stack << 5
|
||||
stack << 4
|
||||
puts "栈 stack = #{stack}"
|
||||
# 访问栈顶元素
|
||||
peek = stack.last
|
||||
puts "栈顶元素 peek = #{peek}"
|
||||
|
||||
# 访问栈顶元素
|
||||
peek = stack.last
|
||||
puts "栈顶元素 peek = #{peek}"
|
||||
# 元素出栈
|
||||
pop = stack.pop
|
||||
puts "出栈元素 pop = #{pop}"
|
||||
puts "出栈后 stack = #{stack}"
|
||||
|
||||
# 元素出栈
|
||||
pop = stack.pop
|
||||
puts "出栈元素 pop = #{pop}"
|
||||
puts "出栈后 stack = #{stack}"
|
||||
# 获取栈的长度
|
||||
size = stack.length
|
||||
puts "栈的长度 size = #{size}"
|
||||
|
||||
# 获取栈的长度
|
||||
size = stack.length
|
||||
puts "栈的长度 size = #{size}"
|
||||
|
||||
# 判断是否为空
|
||||
is_empty = stack.empty?
|
||||
puts "栈是否为空 = #{is_empty}"
|
||||
# 判断是否为空
|
||||
is_empty = stack.empty?
|
||||
puts "栈是否为空 = #{is_empty}"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user