僅用遞迴函式操作逆序一個棧(Swift 4)
阿新 • • 發佈:2018-12-14
/// 取出棧底的數 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)
參考文章:
僅用遞迴函式操作逆序一個棧
僅用遞迴函式,棧操作,來逆序一個棧