์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ํธ๋ฆฌ๋ฅผ ์๊ณ ๋ฆฌ์ฆ ๋ํ๋ ๋ฌธ์ ์์ ํ๊ธฐ ์ฝ๊ฒ ํ ๋ฒ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค.
ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ
ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ ์ง๋ ํธ๋ฆฌ ์๋ฃ ๊ตฌ์กฐ(1)-๊ธฐ๋ณธ ํธ๋ฆฌ ์ฉ์ด ๋ฐ ๊ฐ๋ ํํธ์์ ์ค๋ช ํ์ผ๋ฏ๋ก ์๋ตํ๊ณ ๋ฐ๋ก ๊ตฌํ์ ํด๋ณด๋๋ก ํ๊ฒ ๋ค.
ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ํต์ฌ
ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์์์ ํต์ฌ์ ๋ฐ๋ก ๋ ธ๋์ด๋ค.
์ฌ๊ธฐ์ ๋ ธ๋๋ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ ํ๋ ํ๋์ ์์์ธ ์ ์ด๋ค.
๋ ธ๋๋ ํฌ๊ฒ Data Field์ Link Field๋ก ๋๋์ด์ ธ ์๋ค.
์ ๊ธฐ ์์์ ๋ณด๋ฉด ๊ฐ๊ฐ์ ์ซ์์ ํด๋นํ๋ ๋ถ๋ถ์ด Data Field์ด๋ฉฐ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฐ์ ์ Link Field์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์์์ ๋ง ํ๋ฏ์ด ๋ ธ๋๋ Data Field์ Link Field๊ฐ ํฉ์ณ์ง ๊ตฌ์กฐ์ด๋ฏ๋ก ์ด๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ฆฐ๋ค๋ฉด ์๋์ ๊ฐ์ ๊ทธ๋ฆผ์ ํ์์ ํ๊ณ ์์ ๊ฒ์ด๋ค.
๊ทธ๋ผ ์์ ์กด์ฌํ๋ ํธ๋ฆฌ๋ฅผ ๋ ธ๋๋ก ๋์ํ ํ์ฌ ๋ณด์ฌ์ค๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ํํ๊ฐ ๋ํ๋๊ฒ ๋๋ค.
๋งํฌ ํ๋์์๋ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์๋ ์ฃผ์๊ฐ ๋ด๊ฒจ ์๋ ํํ์ด๋ค.
์๋ฐ๋ก ๊ตฌํํ๊ธฐ
์ด์ ์๋ฐ๋ก ๊ตฌํํด๋ณด์.
๊ตฌํ ๋จ๊ณ๋ 2๋จ๊ณ๋ก
- ๋ ธ๋ ๊ตฌํํ๊ธฐ
- ๋ ธ๋ ์ฐ๊ฒฐ๊ด๊ณ ์ถ๊ฐํ๊ธฐ
class MyNode {
int data;
MyNode left;
MyNode right;
}
class Tree {
public MyNode root;
public void setRoot(MyNode node) {
this.root = root;
}
public MyNode getRoot() {
return root;
}
public MyNode addNode(MyNode left, int data, MyNode right){
MyNode node = new MyNode();
node.data = data;
node.left = left;
node.right = right;
return node;
}
}
๋๊ธ