Data Structure
-
[Data Structure] Deque ์ฌ์ฉ๋ฒData Structure 2021. 8. 1. 15:22
c++ STL ์ค ํ๋์ธ Deque์ ๋ํ ์ค๋ช ์ ๋๋ค. Deque Deque๋ Double-ended queue์ ์ฝ์๋ก ์์ชฝ ์ด๋์์๋ ์ถ๊ฐ, ์ญ์ ๊ฐ ๊ฐ๋ฅํ ๊ตฌ์กฐ์ธ ํ์ ๋๋ค. Queue ์์๋ ์์๋ฅผ ์ ๊ทผํ๊ธฐ ์ํด์ front๋ฅผ ํตํด ํ๋์ฉ ๊ฐ์ ธ์๋ค๋ฉด, Deque๋ iterator์ index ์ ๊ทผ์ด ๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค. push_back, push_front, pop_back, pop_front์ ๊ฐ์ API๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋์์๋ ์ถ๊ฐ๊ฐ ๊ฐ๋ฅํ๊ณ front, back ํจ์๋ฅผ ํตํด ์์๋ฅผ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. API ํํ๋ index ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ฒ๋ง ๋ณด๋ฉด Queue ๋ณด๋ค๋ Vector์ ํํ์ฒ๋ผ ๋ณด์ด๊ณ , ์คํ๋ ค vector๋ณด๋ค ์์ชฝ ๋ ์์๋ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ์์ํธํ์ฒ๋ผ ๋ณด์ผ ์ ์์ต๋..
-
[Data Structure] Java ์ด์งํธ๋ฆฌ(Binary Tree) ๊ตฌํData Structure 2021. 1. 17. 21:07
์ด ๊ธ์ "์จ๋ผ์ธ ์๋ฐ ์คํฐ๋ ๋ด์ฉ"์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ด์งํธ๋ฆฌ(Binary Tree)๋? ํธ๋ฆฌ๋ ๋ ธ๋์ ๊ฐ์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ ๋ฐ๋ณต์ ์ผ๋ก ์ ์๋๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ด์ง ํธ๋ฆฌ๋ ํธ๋ฆฌ์ ์ข ๋ฅ ์ค ํ๋๋ก ๋ชจ๋ ๋ ธ๋๊ฐ ๋ ๊ฐ์ ์๋ธํธ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ ํธ๋ฆฌ์ ๋๋ค. ์ด์ง ํธ๋ฆฌ์ ์๋ธ ํธ๋ฆฌ๋ ๊ณต๋ฐฑ์ด ๋ ์๋ ์๊ณ ํ๋์ ์๋ธํธ๋ฆฌ๋ง ๊ฐ์ง๊ฑฐ๋ ๋ ๊ฐ ๋ชจ๋ ๊ฐ์ง ์๋ ์์ต๋๋ค. ์ด์งํธ๋ฆฌ ๊ตฌํ ๋ ธ๋ ํด๋์ค public class Node { int value; Node left; Node right; public Node(int value) { this.value = value; left = null; right = null; } } ๋จผ์ ์ด์งํธ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ ์ ์ด์งํธ๋ฆฌ์ ํ์ํ ๋ ธ๋๋ฅผ ํด๋์ค๋ก ํํํด์ผ ํฉ๋๋ค. ์ด ๋ ๋ ธ..
-
[Data Structure] Java ํ(Queue) ์ฌ์ฉData Structure 2021. 1. 15. 14:15
์ด ๊ธ์ "์จ๋ผ์ธ ์๋ฐ ์คํฐ๋ ๋ด์ฉ"์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. Queue๋? ํ๋ ์ถ๊ตฌ์ ์ ๊ตฌ๊ฐ ๋ช ๋ฐฑํ ์กด์ฌํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๋ฐฉ์์ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ํ์ ์ฃผ์ ํน์ง์ First In, First Out (FIFO) ๊ตฌ์กฐ๋ฅผ ๊ฐ์ต๋๋ค. ๋ฐฐ์ด๋ก ํ ๊ตฌํ public class Queue { public class Queue { final int MAX_SIZE = 100; int[] arr; int size; public Queue() { arr = new int[MAX_SIZE]; size = 0; } void push(int data){ arr[size++] = data; } int front(){ return arr[0]; } int pop(){ if(size == 0){ return 0; } else{ f..
-
[Data Structure] Java ์คํ(Stack) ์ฌ์ฉData Structure 2021. 1. 15. 13:53
์ด ๊ธ์ "์จ๋ผ์ธ ์๋ฐ ์คํฐ๋ ๋ด์ฉ"์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. Stack์ด๋? ์คํ์ ์ฑ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ ์๋ฃ๊ตฌ์กฐ ์ ๋๋ค. ์คํ์ ๊ฐ์ฅ ํฐ ํน์ง์ First In Last Out (FILO) ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐฐ์ด๋ก ์คํ ๊ตฌํ public class Stack { final int MAX_SIZE = 100; int arr[]; int size; public Stack(){ arr = new int[MAX_SIZE]; size = 0; } public void push(int data){ if(size0){ size--; return 1; } return 0; } public int top(){ if(size>0){ return arr[size-1]; } return -1; } p..
-
[Data Structure] Java ๋งํฌ๋ ๋ฆฌ์คํธ(LinkedList) ๊ตฌํData Structure 2021. 1. 15. 10:55
์ด ๊ธ์ "์จ๋ผ์ธ ์๋ฐ ์คํฐ๋ ๋ด์ฉ"์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. LinkedList๋? ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ ธ๋์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๋ฐฉ์์ธ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ๋งํฌ๋ ๋ฆฌ์คํธ์ ๋ฉค๋ฒ๋ณ์๋ก ๋ฐ์ดํฐ์ ํฌ์ธํฐ๊ฐ ์กด์ฌํ์ฌ ํฌ์ธํฐ๋ก ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐฉ์์ ๋๋ค. ๋งํฌ๋ ๋ฆฌ์คํธ์ ๋ฐฐ์ด๊ณผ์ ์ฐจ์ด์ ์ ๋ช ๋ฐฑํ ์กด์ฌํฉ๋๋ค. ๋ฐฐ์ด์ ํ ์ค๋ก ๋์ด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์๋ฃ๊ตฌ์กฐ๋ก ์ธ๋ฑ์ค๋ก ๋ฐ์ดํฐ์ ์ ๊ทผ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ฐฐ์ด์ ์ถ๊ฐ, ์ญ์ ๊ฐ ์ฉ์ดํ์ง ์์ต๋๋ค. ๋ฐ๋ฉด, ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๊ณผ ์๊ด์์ด ํ๋์ ๋ ธ๋๋ผ๋ฆฌ ์ฐ๊ฒฐํ๋ค ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์ธก๋ฉด์์ ํจ์จ์ ์ ๋๋ค. ์ถ๊ฐ, ์ญ์ ๋ ์ฉ์ดํ์ง๋ง ์ธ๋ฑ์ค๊ฐ ์์ด ํ์ํ๊ธฐ์๋ ์ ํฉํ์ง ์์ต๋๋ค. LinkedList ๊ตฌํ ์๋ฐ์์ ์ธ์คํด์ค ์ ๋ฌ์ ๋ ํผ๋ฐ์ค์ ๋๋ค ์ฐธ์กฐ..
-
[Data Structure] multimap ์ฌ์ฉ๋ฒData Structure 2020. 11. 8. 21:32
์ด ๊ธ์ c++์ stl ์ค ํ๋์ธ multimap ์ฌ์ฉ๋ฒ์ ๋๋ค. multimap multimap์ map๊ณผ ๊ฐ์ด key์ value๋ก ๊ตฌ์ฑ๋ container์ ๋๋ค. map๊ณผ๋ ๋ฌ๋ฆฌ key์ ์ค๋ณต์ด ํ์ฉํฉ๋๋ค. multimap์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์ด ์์ต๋๋ค. multimap์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ #include์ ์ ์ธํด์ผ ํฉ๋๋ค. multimap์ binary search tree์ผ๋ก ์ดํ๋๊ธฐ ๋๋ฌธ์ ํ์์ ์๊ฐ ๋ณต์ก๋๋ O(log n)์ ๋๋ค. ํจ์ empty() multimap์ด ๋น์ด์๋์ง ํ์ธํ๋ ํจ์ if multimap is empty, return 1 else 0 size() mutlimap์ ํฌ๊ธฐ๋ฅผ ๋ฐํํ๋ ํจ์ return size_type (unsigned int) i..
-
[Data Structure] Set ์ฌ์ฉ๋ฒData Structure 2020. 3. 19. 23:10
C++ STL์ค ํ๋์ธ Set์ ๋ํ ์ค๋ช ์ ๋๋ค. Set ์ค๋ณต์ด ์๋ ์งํฉ์ ๋ํ๋ด๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ๋ ธ๋ ๊ธฐ๋ฐ ๊ท ํ ์ปจํ ์ด๋๋ก ๊ท ํ ์ด์งํธ๋ฆฌ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. Set์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ #include ์ ์ ์ธํด์ผ ํฉ๋๋ค. Set ํํ๋ก Compare์๋ ๋น๊ต ํด๋์ค๊ฐ ๋ค์ด๊ฐ๋๋ค. ๋น๊ต ํด๋์ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ๋๋ค. ํจ์ insert(element) set์ element์ ์ถ๊ฐํ๋ ํจ์ if element is contained, then not insert erase(element) set์์ key ์ ๊ฑฐํ๋ ํจ์ if element is contained, then element erase clear() set์ ์ด๊ธฐํํ๋ ํจ์ empty() s..
-
[Data Structure] unordered_map ์ฌ์ฉ๋ฒData Structure 2020. 3. 16. 22:04
C++ STL์ค ํ๋์ธ unordered_map์ ๋ํ ์ค๋ช ์ ๋๋ค. unorderd_map map๋ณด๋ค ๋ ๋น ๋ฅธ ํ์์ ํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. unordered_map์ ํด์ฌํ ์ด๋ธ๋ก ๊ตฌํํ ์๋ฃ๊ตฌ์กฐ๋ก ํ์ ์๊ฐ๋ณต์ก๋๋ O(1)์ ๋๋ค. map์ Binary Search Tree๋ก ํ์ ์๊ฐ ๋ณต์ก๋๋ O(log n)์ ๋๋ค. unordered_map์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ #include ์ ์ ์ธํด์ผ ํฉ๋๋ค. unordered_map์ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ง ์๊ณ map์ ๋นํด ๋ฐ์ดํฐ๊ฐ ๋ง์ ์ ์๋ฑํ ์ข์ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค. ํ์ง๋ง, key๊ฐ ์ ์ฌํ ๋ฐ์ดํฐ๊ฐ ๋ง์ ์ ํด์ ์ถฉ๋๋ก ์ธํด ์ฑ๋ฅ์ด ๋จ์ด์ง ์๋ ์์ต๋๋ค. ํจ์ empty( ) ๋งต์ด ๋น์ด์๋์ง ํ์ธํ๋ ํจ์ if unor..