[Swift] (자료구조) 큐 / Queue
2022. 8. 6. 16:07ㆍ🐣/자료구조
import Foundation
class Queue<T> {
var enQueue: [T] = []
var deQueue: [T] = []
var count: Int {
return enQueue.count + deQueue.count
}
var isEmpty: Bool {
return enQueue.isEmpty && deQueue.isEmpty
}
init() { }
func push(_ element: T) {
enQueue.append(element)
}
func pop() -> T {
if deQueue.isEmpty {
deQueue = enQueue.reversed()
enQueue.removeAll()
}
return deQueue.popLast()!
}
}
import Foundation
struct Queue<T> {
var list = TwoPointerLinkedList<T>()
init(_ elements: [T] = []) {
for element in elements {
list.add(node: Node(data: element))
}
}
var count : Int {
return list.count
}
var isEmpty : Bool {
return list.head == nil
}
var front: T? {
return list.front?.data
}
var back: T? {
return list.back?.data
}
mutating func clear () {
list.clear()
}
mutating func pop() -> T? {
return list.removeFirst()?.data
}
mutating func push(_ element: T) {
list.add(node: Node(data: element))
}
}
'🐣 > 자료구조' 카테고리의 다른 글
[Swift] (자료구조) 트리와 이진 트리 / Binary Tree (0) | 2022.09.01 |
---|---|
[Swift] (자료구조) 우선순위 큐 / Priority Queue (0) | 2022.08.26 |
[Swift] (자료구조) 힙 / Heap (0) | 2022.08.01 |
[Swift] (자료구조) 더블 링크드 리스트 / Doubly Linked List (0) | 2022.08.01 |
[Swift] (자료구조) 링크드 리스트 / Linked List (0) | 2022.08.01 |