-
[자료구조] Swift로 풀어보는 큐(Queue)Programing/자료구조(Data structure) 2020. 6. 16. 21:23
안녕하세요~! 5anniversary입니다.
이번 시간에는 저번 포스팅에 이어 자료구조에서 대표적인 유형중에 하나인
큐에 대해 천천히 알아보며, Swift로 구현해보는 시간을 가져보겠습니다.
우선 큐에 대한 기본적인 구조를 알아야 큐를구현할수있겠죠??
큐는 스택과 달리 선입선출 / FIFO(First in - First Out)으로 데이터에 접근하고,
Back(Rear)이라는 위치에서 Enqueue라는 메소드로 데이터를 입력,
Front라는 위치에서 Dequeue라는 메소드로 데이터를 출력, 삭제하는 구조로 구현되는 자료구조입니다.
일반적으로 정의된 자료구조에 따라서 Swift로 코드를 작성해보자면!!
public struct Queue<T> { private var storage: [T] = [] // 비어있는 Queue로 생성 public init() {} // Queue 생성과 함께 데이터 입력 public init(_ elements: [T]){ storage = elements } // Back에서 데이터 입력 public mutating func enqueue(_ element: T) -> Bool { storage.append(element) return true } // Front에서 데이터 출력, 삭제 public mutating func dequque() -> T? { return isEmpty ? nil : storage.removeFirst() } public var isEmpty: Bool { return storage.isEmpty } public var peek: T? { return storage.first ?? T.self as! T } public var count: Int? { return storage.count } }
와 같이 구현할수가 있습니다.
그리고 Stack과 같이
extension Queue: CustomStringConvertible { public var description: String { return storage.description } }
private로 선언된 storage를 그려줄수있는 desription을 작성해주었습니다.
'Programing > 자료구조(Data structure)' 카테고리의 다른 글
[자료구조] Swift로 풀어보는 덱(Deque) (0) 2020.06.17 [자료구조] Swift로 풀어보는 스택(Stack) (0) 2020.06.16