티스토리 뷰
오늘은 Section4로 들어간 첫날이자 자료구조에 대해 학습한 첫 날이었다.
기초적인 자료구조인 Stack과 Queue에 대해서 배우고 실제로 구현해 보는 예제를 진행하였다.
Stack
먼저 들어간 데이터는 제일 나중에 나오는 LIFO(Last In First Out) 혹은 FILO(First In Last Out)의 특징을 가짐
class Stack {
constructor() {
this.storage = {};
this.top = -1; // 스택의 가장 상단을 가리키는 포인터 변수를 초기화 합니다.
}
size() {
return this.top+1;
}
// 스택에 데이터를 추가 할 수 있어야 합니다.
push(element) {
this.top += 1;
this.storage[this.top] = element;
}
// 가장 나중에 추가된 데이터가 가장 먼저 추출되어야 합니다.
pop() {
// 빈 스택에 pop 연산을 적용해도 에러가 발생하지 않아야 합니다
if (this.size() <= 0) {
return;
}
const result = this.storage[this.top];
delete this.storage[this.top];
this.top -= 1;
return result;
}
}
Queue
Queue는 Stack과 반대되는 개념으로, 먼저 들어간 데이터(data)가 먼저 나오는
FIFO(First In First Out) 혹은 LILO(Last In Last Out)을 특징
class Queue {
constructor() {
this.storage = {};
this.front = 0;
this.rear = 0;
}
size() {
return this.rear - this.front
}
// 큐에 데이터를 추가 할 수 있어야 합니다.
enqueue(element) {
this.storage[this.rear] = element;
this.rear += 1;
}
// 가장 먼저 추가된 데이터가 가장 먼저 추출되어야 합니다.
dequeue() {
// 빈 큐에 dequeue 연산을 적용해도 에러가 발생하지 않아야 합니다
if (this.size()===0) {
return;
}
const result = this.storage[this.front];
delete this.storage[this.front];
this.front += 1;
return result;
}
}
'코드스테이츠' 카테고리의 다른 글
TIL 23.03.17 (0) | 2023.03.17 |
---|---|
TIL 23.03.16 (0) | 2023.03.16 |
TIL 23.03.13 & Section3 회고 (0) | 2023.03.13 |
기술면접 준비 - (0) | 2023.03.13 |
TIL 23.03.09 (0) | 2023.03.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그리디 알고리즘
- useContext
- 개인 프로젝트
- Redux
- seb
- 프론트엔드
- 프리프로젝트
- Python
- SEB43
- dfs
- 백준
- 감정 일기장
- 회고
- SEB 43
- SEB 43기
- 프로젝트
- 브루드포스
- 프로그래머스
- 감정일기장
- 스택오버플로우
- React quill
- 다이나믹 프로그래밍
- BFS
- 코드스테이츠
- 인적성
- 기술면접
- 코테
- dictionary
- til
- SEB43기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함