일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 재귀
- System
- SWiFT
- 백준
- 시간복잡도
- ftz
- Stack
- C
- 큐
- windosws wbcs
- LoB
- 정렬 알고리즘
- 암호수학
- 자료구조
- Java
- 파이썬
- HTML
- OSI
- 두근두근 자료구조
- ftz level13
- 파일 시스템
- windosw 문자열
- level13
- War Game
- PHP
- 스택
- 미로 탐색 알고리즘
- pwnable.kr
- c언어
- web
Archives
- Today
- Total
나의 기록, 현진록
[Swift] Data Structure Linear Deque 자료구조 선형 덱 본문
Programming/Algorithm & Data Structure
[Swift] Data Structure Linear Deque 자료구조 선형 덱
guswlsdk 2021. 6. 24. 22:26반응형
덱의 예
덱은 큐를 응용하여 만들어진 것으로 전단(front)과 후단(rear)에서 모두 삽입, 삭제가 가능한 큐를 의미한다.
구현에 필요한 요소
init() : 덱을 초기화 함
add_front(e) : 주어진 요소 e를 덱의 맨 앞에 추가한다.
delete_front() : 전단 요소를 삭제하고 반환한다.
add_rear(e) : 주어진 요소 e를 덱의 맨 뒤에 추가한다.
delete_rear() : 전단 요소를 삭제하지 않고 반환한다.
get_front() : 전단 욯소를 삭제하지 않고 반환한다.
get_rear() : 후단 요소를 삭제하지 않고 반환한다.
is_empty() : 공백 상태이면 True를 아니면 False 반환
is_full() : 덱이 가득 차 있으면 True를 아니면 False를 반환
size() : 덱의 모든 요소들의 개수를 반환
import Foundation
func initDeque(){
linearDeque.removeAll()
}
func addFront(_ x: Int){
if isFull()==false{
linearDeque.insert(x, at: 0)
}
}
func addRear(_ x: Int){
if isFull() == false{
linearDeque.append(x)
}
}
func getFront() -> Int{
if isEmpty() == false{
return linearDeque[0]
}else {
return -1
}
}
func getRear() -> Int{
if isEmpty() == false{
return linearDeque[linearDeque.count-1]
}else{
return -1
}
}
func deleteFront() -> Int{
if isEmpty() == false{
return linearDeque.removeFirst()
}
else{
return -1
}
}
func deleteRear()->Int{
if isEmpty() == false{
return linearDeque.removeLast()
}else{
return -1
}
}
func isEmpty() -> Bool{
if linearDeque.isEmpty{
print("deque is empty")
return true
}else{
return false
}
}
func isFull() -> Bool{
if linearDeque.count == MAX_DEQUE_SIZE{
print("deque is full")
return true
}else{
return false
}
}
func size() -> Int{
return linearDeque.count
}
let MAX_DEQUE_SIZE = 10
var linearDeque:Array<Int> = []
addFront(1)
print(linearDeque)
addRear(9)
print(linearDeque)
addFront(2)
print(linearDeque)
addRear(10)
print(linearDeque)
print(deleteRear())
print(linearDeque)
print(deleteRear())
print(linearDeque)
print(deleteFront())
print(linearDeque)
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[Swift] Data Structure/maze search/DFS/stack/미로 탐색/깊이우선탐색/스택 (0) | 2021.06.30 |
---|---|
[Swift] Data Structure Circle Deque 자료구조 원형 덱 (0) | 2021.06.30 |
[python] Data Structure Circle Queue 자료구조 원형 큐 (0) | 2021.06.24 |
[python] Data Structure Linear Queue 자료구조 선형 큐 (0) | 2021.06.23 |
[Python] Data Structure Stack 자료구조 스택 (0) | 2021.06.23 |