1. 스택(Stack)
1) 개념
- LIFO 방식 (가장 나중에 들어온 데이터가 가장 먼저 나가는 방식)
- 모든 연산은 최상단에서
2) 연산 및 시간복잡도
- push : 삽입(가장 상단에 원소 추가) // O(1)
- pop : 삭제( 가장 상단에 있는 원소 삭제) // O(1)
- top : 조회(가장 상단에 있는 원소 조회) // O(1)
- len : stack을 구성하고 있는 원소의 개수 출력
- 탐색(검색) : O(N)
- Java에서는 Stack 클래스로 구현되어 있음
3) 관련 문제 및 게시글 링크
2022.10.13 - [Learning-log/Algorithm 문풀] - 백준 - 9012번. 스택 괄호 짝맞추기(python) (2022.10.3~)
2. 큐(Queue)
1) 개념
- FIFO방식 : 가장 먼저 들어온 데이터가 먼저 나가는 방식
2) 연산 및 시간 복잡도
- enqueue : 큐 맨 뒤에 데이터 추가(삽입) //O(1)
- dequeue : 큐 맨 앞에 있는 데이터 삭제 //O(1)
- Java에서는 Queue 인터페이스로 정의되어 있으며 구현체는 ArrayList와 LinkedList로 활용
3) 관련 게시글
2022.11.24 - [Learning-log/Data Structure & Algorithm] - 자료구조 - 큐(Queue), 데크(Deque)
3. LinkedList
1) 개념
- 순차적 자료구조
- 메모리 상의 데이터 비연속적
- 인덱스 0부터 시작하여 1씩 증가
- 데이터에 따라 크기가 가변적이라 추가적으로 데이터가 삽입되거나 삭제되면 그에 크기가 맞춰짐
2) 연산 및 시간복잡도
- 읽기 //O(N)
- 삽입, 삭제 // O(N)
- 자바에서는 ArrayList 또는 LinkedList로 구현되어 있음
3) 관련게시글
2022.09.24 - [Learning-log/Data Structure & Algorithm] - 자료구조-순차적 자료구조 : 배열, 리스트(2022.09.21)
'Learning-log -CS > Data Structure & Algorithm' 카테고리의 다른 글
(자료구조 & 알고리즘 정리) 완전 탐색, 백트래킹 (2023.06.14) (0) | 2023.06.14 |
---|---|
(자료구조 & 알고리즘 정리) 트리(Tree) (2023.06.13) (0) | 2023.06.13 |
(자료구조 & 알고리즘 정리) 재귀, 완전탐색, 순열, 조합, 부분집합 정리(2023.06.04) (0) | 2023.06.05 |
알고리즘 - 이분탐색(Binary Search)과 매개변수 탐색(Parameter Search) (Java, Python) (0) | 2023.04.20 |
알고리즘 - 퀵정렬 (0) | 2023.03.27 |