ํธ๋ฆฌ(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
๋ณต์ฌ