Data structure3 [Java] Graph (Adjacency Matrix, Adjacency List) ์ ์ (Vertex)๊ณผ ๊ฐ์ (Edge)๋ก ๊ตฌ์ฑ๋ ๊ฒ, Graph(G) = (Vertex(V), Edge(E)) Graph ์ฉ์ด ์ ์ (Vertex) - ๋ ธ๋, ํน์ ํ ์ ์๋ ์ค์ฒด๊ฐ์ (Edge) - ์ ์ ๊ฐ ์ด์ด์ ธ ์๋ ์ ๊ฐ์ค์น(Weight) - ์ ์ ๊ฐ์ ๊ฑฐ๋ฆฌ, ๋น์ฉ (๊ฐ์ ์ ๊ธธ์ด๋ผ๊ณ ์๊ฐํด๋ ์ข์)๊ฒฝ๋ก(Path) - ์ถ๋ฐ ์ ์ ์์ ๋์ฐฉ ์ ์ ๊น์ง์ ๊ฑฐ์ณ ๊ฐ ์์์ํ(Cycle) - ๊ฒฝ๋ก์ ์ถ๋ฐ ์ ์ ๊ณผ ๋์ฐฉ ์ ์ ์ด ๊ฐ์ ๊ฒฝ์ฐ์ฐจ์(Degree) - ์ ์ ์ ๋ถ์ ๊ฐ์ ์์ง์ ์ฐจ์(In-Degree) - ์ ์ ์ผ๋ก ๋ค์ด์ค๋ ๊ฐ์ ์์ง์ถ ์ฐจ์(Out-Degree) - ์ ์ ์์ ๋๊ฐ๋ ๊ฐ์ ์Graph ์ข ๋ฅ ์ ํฅ ๊ทธ๋ํ(Directed Graph) - ํน์ ์ ์ ์์ ํน์ ์ ์ ์ผ๋ก ์ด๋ํ๋ ๊ทธ๋ํ๋ฌดํฅ ๊ทธ๋ํ(UnDire.. 2024. 7. 9. [Java] Binary Search Tree ์ ํฌ์คํ ์์ ์์ฑํ Tree์ ๋นํจ์จ์ ์ธ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์๊ธด ์ด์ง ํ์ ํธ๋ฆฌ๋ค.ํธ๋ฆฌ๋ ์ฌ๋ฌ ์์์ ๊ฐ์ง ์ ์์ง๋ง ์ด์ง ๊ฒ์ ํธ๋ฆฌ์์๋ Binary Tree์ ๊ฐ๋ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์์์์ด Left, Right๋ง ์กด์ฌํ๋ค. ์ด๋ฅผ ํตํด Log_2 (N) ๋ฒ๋ง์ ๋ชจ๋ ์ํ์ ๋๋ผ ์ ์๋ค. ๋, inorder๋ฅผ ์ํ ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค. package com.study.datastructrue.nonlinear.binarysearchtree;public class Node { int value; Node left; Node right; public Node(int value) { this.value = value; left = null;.. 2024. 7. 8. [Java] Tree ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ์ข ๋ฅ : Tree, Binary Tree, Binary Serach Tree, Balanced Binary Serach Tree, Heap, Trie์ด๋ฒ ํฌ์คํธ์์๋ ๊ธฐ๋ณธ์ ์ธ Tree์ ๋ํด์๋ง ์์ฑํด๋ณด์. Tree๋ ? Node์ Edge๋ก ๊ตฌ์ฑ๋ ๋ฐฉํฅ์ด ์กด์ฌํ๋ ๋น์ํ Graph์ ํ ์ข ๋ฅ์ด๋ค. ๊ทธ๋์ DAG(Directed Acyclic Graphs)๋ผ๊ณ ๋ ํ๋ค.๊ทธ๋ผ Graph๋ก ๋ถ๋ฅํ๋ฉด ๋์ง ์ Tree๋๋ ์์ฌ์ ํ๊ฒ ๋๋ค.Tree๋ Graph์์ ๋ช๊ฐ์ง ํน์ฑ์ ๋ ๊ฐ์ง๋ค. 1. ๋ฃจํธ ๋ ธ๋๊ฐ ํ๋ ์กด์ฌํ๋ค.2. ๋ถ๋ชจ ๋ ธ๋๋ ํ๋๋ฐ์ ์กด์ฌํ์ง ์๋๋ค.3. ๋ ธ๋๋ 0๊ฐ ์ด์์ ์์์ ๊ฐ์ง๊ณ ์๋ค.4. ์์์ด 0๊ฐ์ธ ๊ฒฝ์ฐ ๋จ๋ง๋ ธ๋(Leaf Node)๋ผ๊ณ ํ๋ค.5.. ์ ํน์ฑ์ ์งํค๋ .. 2024. 7. 7. ์ด์ 1 ๋ค์