仅用递归函数操作逆序一个栈(Swift 4)
/// 取出栈底的数
func getAndRemoveLastElement(_ items: inout [Int]) -> Int {
let value = items.remove(at: 0)
if (items.isEmpty) {
return value
}
let last = getAndRemoveLastElement(&items)
items.insert(value, at: 0)
return last
}
func reverse(_ items: inout [Int]) {
if (items.isEmpty) {
return
}
let value = getAndRemoveLastElement(&items)
reverse(&items)
// 逆序把栈底的数放回数组中,完成逆序
items.append(value)
}
var data = [1, 2, 3, 4, 5]
reverse(&data)
print(data)
参考文章:
仅用递归函数操作逆序一个栈
仅用递归函数,栈操作,来逆序一个栈
Stay hungry,stay foolish.

浙公网安备 33010602011771号