IT/development

[java] LinkedList(연결 리스트) 내 방식대로 이해 (feat. 자료구조)

어흥꼬비 2025. 1. 4.

목차

[java] LinkedList(연결 리스트) 내 방식대로 이해 (feat. 자료구조)

카테고리를 고민하다가 스스로 아직 자료구조에 대해 잘 정리가 안된 상태라서 그냥 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..를 통해 계속 연결할 수 있다는 단순한 방식으로 이해했다.

그 과정에서 자연스럽게 기차가 연상되었다.

[java] LinkedList(연결 리스트) 내 방식대로 이해 (feat. 자료구조) - source code 
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


개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.

틀린 점 있을 경우 댓글 부탁드립니다.