Skip to content

Instantly share code, notes, and snippets.

@eunjin3786
Created October 8, 2022 06:33
Show Gist options
  • Save eunjin3786/c8c1b2bd12b8700f5abe670e29eb5fe3 to your computer and use it in GitHub Desktop.
Save eunjin3786/c8c1b2bd12b8700f5abe670e29eb5fe3 to your computer and use it in GitHub Desktop.
import DequeModule
struct Stack<T> {
private var deque: Deque<T> = []
var top: T? { deque.last }
mutating func push(_ element: T) {
deque.append(element)
}
mutating func pop() -> T? {
return deque.popLast()
}
}
struct Queue<T> {
private var deque: Deque<T> = []
var head: T? { deque.first }
var tail: T? { deque.last }
mutating func enqueue(_ element: T) {
deque.append(element)
}
mutating func dequeue() -> T? {
return deque.popFirst()
}
}
var stack = Stack<Int>()
var queue = Queue<Int>()
stack.push(1)
stack.push(2)
stack.pop() // 2
queue.enqueue(1)
queue.enqueue(2)
queue.dequeue() // 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment