๋ ธ๋์ ํฌ์ธํฐ
โข
๋น์์ฐจํํ: ๋ฐฐ์ด์ฒ๋ผ ์ฐ์๋ ๊ณต๊ฐ์ด ์๋๋ผ, ๋
ธ๋๋ค์ด ๋ฉ๋ชจ๋ฆฌ ์ฌ๊ธฐ์ ๊ธฐ์ ํฉ์ด์ ธ ์์ ์ ์๋ ํํ ๋ฐฉ์.
โข
์ฐ๊ฒฐํํ: ๋
ธ๋(๋ฐ์ดํฐ) + ๋งํฌ(๋ค์ ๋
ธ๋ ์ฃผ์)๋ฅผ ์ด์ฉํด ์๋ฃ๋ฅผ ํํํ๋ ๋ฐฉ์.
โข
<์์, ์ฃผ์> ๋
ธ๋: ํ ๋
ธ๋๊ฐ ๋ฐ์ดํฐ(์์) ์ ๋ค์ ๋
ธ๋์ ์ฃผ์(๋งํฌ) ๋ฅผ ํจ๊ป ๊ฐ๋ ๊ตฌ์กฐ.
โฆ
๋ฐ์ดํฐ ํ๋(data field): ์ค์ ๊ฐ(์์)์ ์ ์ฅ.
โฆ
๋งํฌ ํ๋(link field): ๋ค์ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฃผ์(ํฌ์ธํฐ)๋ฅผ ์ ์ฅ.
โฆ
ํฌ์ธํฐ ๋ณ์(pointer variable): ์ด๋ค ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋๋ก โ์ฃผ์โ๋ฅผ ์ ์ฅํ๋ ๋ณ์(์: head, p, q).
์ฐ๊ฒฐ๋ฆฌ์คํธ
โข
์ฐ๊ฒฐ๋ฆฌ์คํธ(Linked List): ๋
ธ๋๋ค์ด ๋งํฌ ํ๋๋ก ์๋ก ์ฐ๊ฒฐ๋ ์ ํ ์๋ฃ๊ตฌ์กฐ.
โข
๊ณต๋ฐฑ ์ฐ๊ฒฐ๋ฆฌ์คํธ(Empty Linked List): ์ ์ฅ๋ ๋
ธ๋๊ฐ ์๋ ๋ฆฌ์คํธ. ๋ณดํต head == null ๋ก ํํ.
โข
๋ ํฌ์ธํฐ(Null Pointer): โ์๋ฌด ๊ฒ๋ ๊ฐ๋ฆฌํค์ง ์์โ์ ์๋ฏธํ๋ ๊ฐ. (C/C++: NULL, Java: null)
โข
์ ์ฐ์ฐ์(.): ๊ฐ์ฒด/์ฐธ์กฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋์์ ๋ฉค๋ฒ ์ ๊ทผ(์: node.next, node.data).
Java์ ์ฐธ์กฐ ๋ณ์์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ
โข
Java์ ์ฐธ์กฐ ๋ณ์(reference variable): ๊ฐ์ฒด ์์ฒด๊ฐ ์๋๋ผ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ(์ฃผ์์ฒ๋ผ ๋์) ๋ฅผ ์ ์ฅ.
โข
๊ฐ๋น์ง ์ปฌ๋ ํฐ(GC): ์ด๋ค ๊ฐ์ฒด๋ ์ฐธ์กฐํ์ง ์๊ฒ ๋๋ฉด(๋๋ฌ ๋ถ๊ฐ ์ํ) ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ํ์.




