我在swift中实现了自己的堆栈吗? swift是否像Java一样在库中有堆栈?

时间:2016-06-09 03:49:27

标签: swift stack

新手快速,当我想使用堆栈时感到困惑。我必须自己实施吗?如果是这样,为什么swift没有像Java那样在库中拥有它? 感谢。

3 个答案:

答案 0 :(得分:0)

我不熟悉Java,但如果您需要能够将项目放入堆栈,并将最后一项从堆栈中弹出,emperor.ini具有以下功能:

.ini

答案 1 :(得分:0)

struct Stack<T> {

    private var stack: [T] = []

    mutating func push(_ item: T) {
        stack.append(item)
    }

    mutating func pop() -> T {
        return stack.removeLast()
    }

    func peek() -> T? {
        return stack.last
    }
}

var intStack: Stack<Int>()
intStack.push(1)
print("\(intStack.peek())") // -> 1
let first = intStack.pop() // -> 1

答案 2 :(得分:-1)

你真的不需要做太多的事情来获得一个像堆栈一样的东西。 Array具有方法appendpopLast,可以用作堆栈方法push和pop。您甚至可以进行一些扩展,使Array方法与传统堆栈中的方法匹配:

extension Array {
  mutating func push(item:Element) {
    append(item)
  }

  mutating func pop() -> Element? {
    return popLast()
  }
}