How to implement a stack using struct in Swift

1 Answer

0 votes
struct Stack<T> {
    private var items: [T] = []

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

    mutating func pop() -> T? {
        return items.popLast()
    }

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

    var isEmpty: Bool {
        return items.isEmpty
    }

    var count: Int {
        return items.count
    }
    
    func printStack() {
        print("Current Stack (top to bottom):")
        for item in items.reversed() {
            print(item)
        }
    }
}

var stringStack = Stack<String>()

stringStack.push("Swift")
stringStack.push("C")
stringStack.push("C++")
stringStack.push("Java")

print("Top: \(stringStack.peek() ?? "Empty")")

print("Popped: \(stringStack.pop() ?? "Empty")")

stringStack.printStack()



/*
run:

Top: Java
Popped: Java
Current Stack (top to bottom):
C++
C
Swift

*/

 



answered Aug 16 by avibootz

Related questions

1 answer 19 views
1 answer 148 views
148 views asked Mar 31, 2018 by avibootz
3 answers 168 views
168 views asked Feb 15, 2021 by avibootz
1 answer 28 views
1 answer 46 views
...