IT/development

[java] LinkedList(์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ) ๋‚ด ๋ฐฉ์‹๋Œ€๋กœ ์ดํ•ด (feat. ์ž๋ฃŒ๊ตฌ์กฐ)

์–ดํฅ๊ผฌ๋น„ 2025. 1. 4.

๋ชฉ์ฐจ

    ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ์Šค์Šค๋กœ ์•„์ง ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์ž˜ ์ •๋ฆฌ๊ฐ€ ์•ˆ๋œ ์ƒํƒœ๋ผ์„œ ๊ทธ๋ƒฅ 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..๋ฅผ ํ†ตํ•ด ๊ณ„์† ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ˆœํ•œ ๋ฐฉ์‹์œผ๋กœ ์ดํ•ดํ–ˆ๋‹ค.

    ๊ทธ ๊ณผ์ •์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ธฐ์ฐจ๊ฐ€ ์—ฐ์ƒ๋˜์—ˆ๋‹ค.

    image source:https://unsplash.com/ko/%EC%82%AC%EC%A7%84/%EC%88%B2%EC%9D%84-%ED%86%B5%EA%B3%BC%ED%95%98%EB%8A%94-%EA%B2%80%EC%9D%80-%EC%83%89%EA%B3%BC-%EB%B9%A8%EA%B0%84%EC%83%89-%EA%B8%B0%EC%B0%A8-mHqIs22M2Kw

    ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์ œ์•ผ ์ ‘ํ•œ ๊ฒƒ๋„ ๋Šฆ์—ˆ์ง€๋งŒ ์ „ํ˜€ ์•ˆํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ํ›จ์”ฌ ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๊ณ  ์•ž์œผ๋กœ๋„ ๊ณ„์† ๊ฐœ๋ฐœ ์—…๋ฌด๋ฅผ ํ•˜๋ฉด์„œ ๋ถ€๋„๋Ÿฌ์›Œ ํ•˜์ง€ ์•Š๊ณ  ๊ณต๋ถ€ํ•˜๋ฉฐ ํฌ์ŠคํŒ…์„ ํ•  ์ƒ๊ฐ์ด๋‹ค.


    reference: https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-2/dashboard?inst=e57a2bad

     

    ๊น€์˜ํ•œ์˜ ์‹ค์ „ ์ž๋ฐ” - ์ค‘๊ธ‰ 2ํŽธ ๊ฐ•์˜ | ๊น€์˜ํ•œ - ์ธํ”„๋Ÿฐ

    ๊น€์˜ํ•œ | ์ž๋ฐ” ์ œ๋„ค๋ฆญ๊ณผ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‹ค๋ฌด ์ค‘์‹ฌ์œผ๋กœ ๊นŠ์ด์žˆ๊ฒŒ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฃŒ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ธฐ๋„ ํ•จ๊ป˜ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค., ๊ตญ๋‚ด ๊ฐœ๋ฐœ ๋ถ„์•ผ ๋ˆ„์  ์ˆ˜๊ฐ•์ƒ 1์œ„, ์ œ๋Œ€๋กœ ๋งŒ๋“  ๊น€์˜ํ•œ์˜ ์‹ค์ „

    www.inflearn.com


    ๊ฐœ์ธ ์Šคํ„ฐ๋”” ๊ธฐ๋ก์„ ๋ฉ”๋ชจํ•˜๋Š” ๊ณต๊ฐ„์ด๋ผ ํ‹€๋ฆฐ์ ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ‹€๋ฆฐ ์  ์žˆ์„ ๊ฒฝ์šฐ ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

     

    ๋Œ“๊ธ€