[메이드 인 스위프트] 자료구조 - 큐 Queue 구현해보기
·
🖥️ Computer Science/Data Structure
개요지난 Stack과 유사하게 기본적인 Queue를 구현하면서 자료구조 개념을 익혀보자이번에도 함수형 & 제네릭으로 작성해봤다. 코드 구현public struct KJQueue { private let queue: [Element] public var count: Int { queue.count } public var isEmpty: Bool { queue.isEmpty } public var peek: Element? { queue.first } // MARK: Initializer public init(_ queue: [Element] = []) { self.queue = queue } public func enqueue(_ value: Ele..
[메이드 인 스위프트] 자료구조 - 스택 Stack 구현해보기
·
🖥️ Computer Science/Data Structure
개요이번에 알고리즘 공부를 할 참이었는데,자료구조도 다시 공부하고 Swift로는 구현을 안 해본 거 같아서Swift로 구현해보고 이를 함수형을 지키며 불변성 & 순수 함수로 구현해보려 한다. 그냥 문뜩 Swift로 함수형 프로그래밍을 하고 싶어졌다.지난 번 Linked List를 함수형으로 만들었을 때 함수형으로 해볼 기회가 있었는데,거기서 매력을 느껴서 그런 것 같다. 코드 구현public struct KJStack { private let stack: [Element] public var count: Int { stack.count } public var isEmpty: Bool { stack.isEmpty } public var peek: Element? { stack.last..
그래프 응용(최소신장트리), Prim 알고리즘 C언어 구현
·
🖥️ Computer Science/Data Structure
지난 시간에 그래프의 기초 개념을 다루었으니 그래프 응용 시간을 가져보겠다. 이번 시간에 할 건 그래프의 최소비용 신장트리의 구성이다. 그전에 우리는 무방향 그래프만 다룰 것이고, 시작에 앞서 용어를 몇 개 짚고 가자 가중치 그래프 : 정점을 잇는 간선에 값이 부여된 그래프이다. 인접행렬을 보면 0과 0이상의 값, 무한대로 3가지의 값의 표현이 있다. 0 : 자기 자신을 가리키는 간선이 없으니 0 0 이상의 값 : 가중치, weight라고 부른다. 무한대 : this 정점에서 해당 정점까지 한 번에 가지 못한다는 걸 의미한다. 지난 시간에는 정점이 간선으로 연결되어 있다는 사실로, 인접행렬을 0과 1로 표현했지만 이제는 간선에 값이 주어지기에 1이 아닌, 그 값을 인접행렬에 넣는다. 신장트리(Spanni..
그래프(Graph)의 개념과 C언어로 구현
·
🖥️ Computer Science/Data Structure
그래프란 ? : 정점(Vertex)과 그 정점을 잇는 간선(edge)으로 구성되어 있는 자료구조 무방향 그래프 : 간선의 방향이 없는 그래프 방향 그래프 : 간선의 방향이 있는 그래프 그래프를 표현하는 두 가지 방법 1. 인접행렬 2. 인접리스트 인접행렬 표현법 (무방향과 방향 그래프) 무방향 그래프를 인접행렬로 표현하면 대칭적인 형태를 볼 수 있다. 인접행렬을 작성하는 코드는 다음과 같다. // 그래프의 인접행렬 생성 함수 void createGraph(int arr[][MAX_SIZE], int vertex, int edge) { int start, destination; // 인접행렬 초기화 for (int i = 0; i < vertex; i++) { for (int j = 0; j < verte..