Data Structure
-
[Data Structure] ๊ทธ๋ํ์ ํธ๋ฆฌData Structure 2022. 3. 14. 09:13
๊ทธ๋ํ์ ํน์ง ๋ ธ๋์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ ํ๋๋ก ๋ชจ์๋์ ์๋ฃ๊ตฌ์กฐ ๋ฐฉํฅ ๊ทธ๋ํ (Directed) ์ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ (Undirected) ๋ก ๋๋๋ค. ์ฌ์ดํด (Cycle) ์ด ์์ ์๋ ์๊ณ , ์์ฒด ๊ฐ์ (Self-loop) ๋ ์์ ์ ์๋ค. ๋ฃจํธ ๋ ธ๋, ๋ถ๋ชจ-์์์ ๊ฐ๋ ์ด ์๋ค. ์ํ ๋ฐฉ๋ฒ์ BFS, DFS๊ฐ ์๋ค. ๊ฐ์ ์ ์๊ฐ ์ ํ๋์ด์์ง ์๋ค. ๊ทธ๋ํ ์ฉ์ด ์ ์ (vertex) : ์์น (node) ๊ฐ์ (edge) : ์์น ๊ฐ์ ๊ด๊ณ. ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์ (link) ์ธ์ ์ ์ (adjacent vertex) : ๊ฐ์ ์ ์ํด ์ง์ ์ฐ๊ฒฐ๋ ์ ์ ์ ์ ์ ์ฐจ์ (degree) : ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์์ ํ๋์ ์ ์ ์ ์ธ์ ํ ์ ์ ์ ์ ์ง์ ์ฐจ์ (in-degree) : ๋ฐฉํฅ ๊ทธ๋ํ์์ ์ ์ ์ผ๋ก ๋ค์ด์ค..
-
[Data Structure] ํ (Queue)Data Structure 2022. 2. 13. 19:08
์๋ ํ์ธ์! ์ด๋ฒ์๋ Queue์ ๋ํด์ ํฌ์คํ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค! 1. Queue๋? Queue๋ ํ์ชฝ ๋์์๋ง ์์์ ์ถ๊ฐ๊ฐ ์ด๋ฃจ์ด์ง๊ณ , ๋ค๋ฅธ ํ์ชฝ ๋์์๋ง ์์์ ์ ๊ฑฐ๊ฐ ์ด๋ฃจ์ด์ง๋ ์์ฐจํ๋ ๋ฆฌ์คํธ์ ๋๋ค. ์์์ ์ถ๊ฐ๊ฐ ์ด๋ฃจ์ด์ง๋ ์ชฝ์ rear, ์์์ ์ ๊ฑฐ๊ฐ ์ด๋ฃจ์ด์ง๋ ์ชฝ์ front๋ผ๊ณ ํฉ๋๋ค. ์ฆ, rear๋ก ์์๊ฐ ๋ค์ด์ค๊ณ , front๋ก ์์๊ฐ ๋๊ฐ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค. Queue๋ ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ์์๊ฐ ๊ฐ์ฅ ๋จผ์ ๋์ค๊ธฐ ๋๋ฌธ์ FIFO (First-In-First-Out) ๊ตฌ์กฐ์ ๋๋ค. Queue ๋ํ Stack๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์์ ์ถ๊ฐ/์ ๊ฑฐ ์๊ฐ๋ณต์ก๋๋ O(1)์ ๋๋ค. ์ ์ผ ์๊ณผ ๋ค์ ์๋ ์์๋ฅผ ํ์ธํ๋ ์๊ฐ๋ณต์ก๋ ๋ํ O(1)์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ Queue์ ์ ์ผ ์๊ณผ ๋ค๋ฅผ ์ ์ธํ ๋๋จธ์ง ์..
-
[Data Structure] ์คํ (Stack)Data Structure 2022. 2. 9. 02:34
์๋ ํ์ธ์! ์ค๋์ Stack์ ๋ํด์ ํฌ์คํ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค! 1. Stack์ด๋? Stack์ ๊ฐ์ ํ์ชฝ ๋์์๋ง ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ ๊ฒ์ผ๋ก, LIFO (Last-In-First-Out) ๊ตฌ์กฐ์ ๋๋ค. ์๋ก์ด ์์๋ฅผ ์๋๋ถํฐ ์ฐจ๋ก๋๋ก ํ๋์ฉ ์๋ ๊ฒ์ผ๋ก, ์์๋ฅผ ์ง์ธ ๋์๋ ์ ์ผ ์์ ์๋ ์์๊ฐ ์ ์ผ ๋จผ์ ์ง์์ง๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋์ค์ ๋ค์ด์จ ์์๊ฐ ๋จผ์ ๋๊ฐ๊ฒ ์ฃ ? ๊ทธ๋์ Stack์ LIFO ๊ตฌ์กฐ์ ๋๋ค. ์ ์ผ ์์ ์๋ ์์๋ฅผ top element, ์ ์ผ ์๋์ ์๋ ์์๋ฅผ bottom element๋ผ๊ณ ํฉ๋๋ค. ์ฆ, Stack์ top์ ์์น์์๋ง ์์์ ์ฝ์ ๊ณผ ์ ๊ฑฐ๊ฐ ์ด๋ฃจ์ด์ง๋ ์์ฐจํ๋ ๋ฆฌ์คํธ์ ๋๋ค. Stack์ด ๋ญ์ง ์์๋ดค์ผ๋, ์ด์ Stack์ ์ฑ์ง์ ๋ํด์ ์์๋ณด๋๋ก ํ ๊ฒ์!..
-
[Data Structure] Linked List (Feat. Array)Data Structure 2022. 1. 12. 23:44
๋ฐฐ์ด (Array)์ด๋? ์์๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋ ์๋ฃ๊ตฌ์กฐ ์ธ๋ฑ์ค๋ก ๋ฐฐ์ด์ ์์๋ฅผ ๋ฐ๋ก ์ฐพ์ ์ ์๋ค. ๋ฐฐ์ด์ ํน์ง O(1)์ n๋ฒ์งธ ์์๋ฅผ ํ์ธํ๊ณ , ๋ณ๊ฒฝํ ์ ์๋ค. ์ถ๊ฐ์ ์ผ๋ก ์๋ชจ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ์, ์ฆ ์ค๋ฒํค๋๊ฐ ๊ฑฐ์ ์๋ค. ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ์ดํฐ๋ค์ด ๋ถ์ด์๊ธฐ ๋๋ฌธ์, Cache hit rate๊ฐ ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์์ ์ฐ์์ ์ผ๋ก ๊ตฌ๊ฐ์ ์ก์์ผํ๋ฏ๋ก, ํ ๋น์ ๋ค์ ์ ์ฝ์ด ์๋ค. ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ, ๋ง์ง๋ง ์ธ๋ฑ์ค ์ด์ธ์ ์ธ๋ฑ์ค์ ์๋กญ๊ฒ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ๋, ์์๋ค์ ์๋กญ๊ฒ ๋ฐฐ์นํด์ผํ๊ธฐ ๋๋ฌธ. ใ ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Linked List)๋? ๋ฉ๋ชจ๋ฆฌ ์์ ์ฐ์์ ์ด์ง ์์ ๋ฐ์ดํฐ๋ค์ ๋งํฌ๋ก ์ฐ๊ฒฐํด๋์ ์๋ฃ๊ตฌ์กฐ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๋ ธ๋๋ก ์ด๋ฃจ์ด์ ธ์๋๋ฐ, ๋ ธ๋๋ data (๋ฐ์ดํฐ), link (๋งํฌ)๋ก ์ด๋ฃจ์ด..