Search

ํŠธ๋ฆฌ

ํŠธ๋ฆฌ(Tree)

ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ๋“ค์ด ๋‚˜๋ฌด ๊ฐ€์ง€์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ๋œ ๋น„์„ ํ˜• ๊ณ„์ธต์  ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ํ•œ ๊ฐœ์˜ ๋ฃจํŠธ ๋…ธ๋“œ์™€ 0๊ฐœ ์ด์ƒ์˜ ํ•˜์œ„ ํŠธ๋ฆฌ๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์œ ํ•œํ•œ ๋…ธ๋“œ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.

ํ•ต์‹ฌ ์š”์†Œ

์š”์†Œ
์„ค๋ช…
๋…ธ๋“œ(Node)
ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ์š”์†Œ
๋ฃจํŠธ(Root)
ํŠธ๋ฆฌ์˜ ์ตœ์ƒ์œ„ ๋…ธ๋“œ
๋ถ€๋ชจ ๋…ธ๋“œ(Parent)
์ง์ ‘์ ์ธ ์ƒ์œ„ ๋…ธ๋“œ
์ž์‹ ๋…ธ๋“œ(Child)
์ง์ ‘์ ์ธ ํ•˜์œ„ ๋…ธ๋“œ
๋ฆฌํ”„(Leaf)
์ž์‹์ด ์—†๋Š” ๋ง๋‹จ ๋…ธ๋“œ
๊นŠ์ด(Depth)
๋ฃจํŠธ์—์„œ ํŠน์ • ๋…ธ๋“œ๊นŒ์ง€์˜ ๊ฒฝ๋กœ ๊ธธ์ด

์ง์ ‘ ๊ตฌํ˜„ ์˜ˆ์‹œ ์ฝ”๋“œ

class Node { int data; Node left; Node right; public Node(int data) { this.data = data; left = right = null; } } class BinaryTree { Node root; public BinaryTree() { root = null; } void insert(int data) { root = insertRec(root, data); } Node insertRec(Node root, int data) { if (root == null) { root = new Node(data); return root; } if (data < root.data) root.left = insertRec(root.left, data); else if (data > root.data) root.right = insertRec(root.right, data); return root; } }
Java
๋ณต์‚ฌ

Java Collection Framework ์‚ฌ์šฉ ์˜ˆ์‹œ

import java.util.TreeSet; import java.util.TreeMap; public class TreeExample { public static void main(String[] args) { // TreeSet ์˜ˆ์‹œ TreeSet<Integer> treeSet = new TreeSet<>(); treeSet.add(5); treeSet.add(3); treeSet.add(7); System.out.println("TreeSet: " + treeSet); // ์ž๋™ ์ •๋ ฌ๋จ: [3, 5, 7] // TreeMap ์˜ˆ์‹œ TreeMap<String, Integer> treeMap = new TreeMap<>(); treeMap.put("A", 1); treeMap.put("C", 3); treeMap.put("B", 2); System.out.println("TreeMap: " + treeMap); // ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž๋™ ์ •๋ ฌ } }
Java
๋ณต์‚ฌ