스택(Stack)
- 쌓다, 쌓이다, 포개지다
- LIFO(Last In First Out) 혹은 FILO(First Out Last In)의 구조 (e.g. 프링글스)
- 데이터를 한번에 하나씩만 넣고 뺄 수 있음
- 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근 구조
- 데이터를 넣는 것을 'PUSH', 데이터를 꺼내는 것을 'POP'이라고 함
스택 메서드
- push() : 스택에 데이터 추가
- pop() : 가장 나중에 추가된 데이터를 스택에서 삭제하고, 삭제한 데이터 리턴
- size() : 스택에 추가된 데이터의 크기
- peek() : 스택에 가장 나중에 추가된 데이터 리턴
- show() : 현재 스택에 포함되어 있는 모든 데이터를 String 타입으로 변환하여 리턴
- clear() : 스택의 모든 데이터 삭제
큐(Queue)
- 줄을 서서 기다리다, 대기행렬
- FIFO(First In First Out) 혹은 LILO(Last In Last Out)의 구조 (e.g. 톨게이트)
- 데이터를 한번에 하나씩만 넣고 뺄 수 있음
- 데이터의 입력, 출력 방향이 다름
- 데이터를 넣는 것을 'enqueue', 데이터를 꺼내는 것을 'dequeue'라고 함
큐 메서드
- add() : 큐에 데이터 추가
- poll() : 가장 먼저 추가된 데이터를 큐에서 삭제하고, 삭제한 데이터 리턴
- size() : 큐에 추가된 데이터의 크기
- peek() : 큐에 가장 먼저 추가된 데이터 리턴
- show() : 큐에 들어있는 모든 데이터를 String 타입으로 변환하여 리턴
- clear() : 큐의 모든 데이터 삭제
'백엔드 개발자 공부 > 자료구조, 알고리즘' 카테고리의 다른 글
[자료구조] Search Algorithm: 트리 순회, BFS / DFS (0) | 2022.09.26 |
---|---|
[자료구조] 이진 트리(Binary Tree) (0) | 2022.09.23 |
[자료구조] 트리(Tree) (0) | 2022.09.23 |
[자료구조] 그래프(Graph) (0) | 2022.09.23 |
[자료구조] Intro (0) | 2022.09.22 |