๋ชฉ์ฐจ
์นดํ ๊ณ ๋ฆฌ๋ฅผ ๊ณ ๋ฏผํ๋ค๊ฐ ์ค์ค๋ก ์์ง ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์ ์ ๋ฆฌ๊ฐ ์๋ ์ํ๋ผ์ ๊ทธ๋ฅ java๋ก ๋ถ๋ฅํ๋ค.
source code
package collection.link;
public class NodeMain1 {
public static void main(String[] args) {
//๋
ธ๋ ์์ฑํ๊ณ ์ฐ๊ฒฐํ๊ธฐ: A -> B -> C
Node first = new Node("A"); //1๋ฒ ์งธ ๋
ธ๋์ ์ฐธ์กฐ๊ฐ
first.next = new Node("B"); //1๋ฒ ์งธ ๋
ธ๋์ nextํ๋์ 2๋ฒ ์งธ ๋
ธ๋์ ์ฐธ์กฐ๊ฐ ์ ์ฅ
first.next.next = new Node("C"); //2๋ฒ ์งธ ๋
ธ๋์ nextํ๋์ 3๋ฒ ์งธ ๋
ธ๋์ ์ฐธ์กฐ๊ฐ ์ ์ฅ
//์๋๋ npe๋ฐ์(4๋ฒ ์งธ ์ฃผ์๊ฐ์ null์)
System.out.println("4๋ฒ ์งธ ์ฃผ์๋ก ์ด๋ = " + first.next.next.next.toString());
//[first] ---> [Node("A") | next] ---> [Node("B") | next] ---> [Node("C") | null]
System.out.println("๋ชจ๋ ๋
ธ๋ ํ์ํ๊ธฐ");
Node x = first;
while (x != null) {
System.out.println(x.item);
x = x.next;
}
/*
๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด ๋
ธ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ค์ ๋
ธ๋๋ก ์ฐ๊ฒฐ๋๋ ์ฃผ์๊ฐ๋ง ๊ฐ์ง๊ณ ์๋ ๊ตฌ์กฐ๊ณ
์ฐธ์กฐ๊ฐ๋ง ์์ผ๋ฉด ๊ณ์ ์ฐ๊ฒฐํด์ ์ด๋ ๊ฐ๋ฅ
๋ง์น ๊ธฐ์ฐจ๋ฅผ ์ฐ๊ฒฐํ ๊ฒ ์ฒ๋ผ 1๋ฒ ์งธ ๋
ธ๋๋ ๊ธฐ์ฐจ์ ๊ธฐ๊ด์ฐจ ์ญํ , ๋ชจ๋ ์นธ์ ๊ธฐ๊ด์ฐจ์์๋ถํฐ ์ฐ๊ฒฐ๋จ
next ํ๋: ๋ค์ ๋
ธ๋๋ก์ ์ฐ๊ฒฐ ๊ณ ๋ฆฌ๋ฅผ ๋ด๋นํ๋ฉฐ, ํ๋์ ๊ฐ์ด ์์ผ๋ฉด ๊ณ์ ์ฐ๊ฒฐ ๊ฐ๋ฅ
null: ๊ธฐ์ฐจ์ ๋ง์ง๋ง ์นธ(์ฐ๊ฒฐํ ๊ณณ์ด ์์)
*/
}
}
๊ฐ์๋ฅผ ๋ค์์ ๋๋ ์ดํด๊ฐ ๋ ๊ฒ ๊ฐ์์ง๋ง, ๋์์๋ฉด ๋ฐฑ์ง๊ฐ ๋ ๋๋์ด์๊ณ ๋ค์ํ ์๊ฐ์์ ์๊ฐํ๊ณ ์ค์ค๋ก ์ ๋ฆฌํ๋ฉด์ ๋๋ฆ๋๋ก ์ดํดํ ๋ด์ฉ์ ์ฃผ์์ ์์ฑํ๋ค.
ํนํ ์ฒ์์๋ first.next.next... ์ด ๋ถ๋ถ์ด ๋งค์ฐ ์ดํด๊ฐ ์๋์๋ค.
๊ทธ๋ฐ๋ฐ ๊ฒฐ๋ก ์ ์ผ๋ก๋ ๋ ธ๋์ ์ฐธ์กฐ๊ฐ์ด null์ด ์๋๋ฉด, next.next..๋ฅผ ํตํด ๊ณ์ ์ฐ๊ฒฐํ ์ ์๋ค๋ ๋จ์ํ ๋ฐฉ์์ผ๋ก ์ดํดํ๋ค.
๊ทธ ๊ณผ์ ์์ ์์ฐ์ค๋ฝ๊ฒ ๊ธฐ์ฐจ๊ฐ ์ฐ์๋์๋ค.
์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ ์ผ ์ ํ ๊ฒ๋ ๋ฆ์์ง๋ง ์ ํ ์ํ๋ ๊ฒ๋ณด๋ค๋ ํจ์ฌ ๋ซ๋ค๊ณ ์๊ฐ๋๊ณ ์์ผ๋ก๋ ๊ณ์ ๊ฐ๋ฐ ์ ๋ฌด๋ฅผ ํ๋ฉด์ ๋ถ๋๋ฌ์ ํ์ง ์๊ณ ๊ณต๋ถํ๋ฉฐ ํฌ์คํ ์ ํ ์๊ฐ์ด๋ค.
๊น์ํ์ ์ค์ ์๋ฐ - ์ค๊ธ 2ํธ ๊ฐ์ | ๊น์ํ - ์ธํ๋ฐ
๊น์ํ | ์๋ฐ ์ ๋ค๋ฆญ๊ณผ ์ปฌ๋ ์ ํ๋ ์์ํฌ๋ฅผ ์ค๋ฌด ์ค์ฌ์ผ๋ก ๊น์ด์๊ฒ ํ์ตํฉ๋๋ค. ์๋ฃ ๊ตฌ์กฐ์ ๋ํ ๊ธฐ๋ณธ๊ธฐ๋ ํจ๊ป ํ์ตํฉ๋๋ค., ๊ตญ๋ด ๊ฐ๋ฐ ๋ถ์ผ ๋์ ์๊ฐ์ 1์, ์ ๋๋ก ๋ง๋ ๊น์ํ์ ์ค์
www.inflearn.com
๊ฐ์ธ ์คํฐ๋ ๊ธฐ๋ก์ ๋ฉ๋ชจํ๋ ๊ณต๊ฐ์ด๋ผ ํ๋ฆฐ์ ์ด ์์ ์ ์์ต๋๋ค.
ํ๋ฆฐ ์ ์์ ๊ฒฝ์ฐ ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค.
๋๊ธ