단일 연결 목록

3271 단어
연결 목록의 노드에는 데이터 요소와 다음 노드의 주소가 포함되어 있다는 점에서 이미 논의한 바와 같습니다. 연결 목록의 노드가 데이터 요소와 다음 노드에 대한 주소만 포함하는 경우 이러한 종류의 연결 목록을 단일 연결 목록이라고 합니다.
다음은 단일 연결 목록의 표현입니다.


연결 목록의 마지막 노드는 주소를 포함하지 않는 null을 가리킵니다.
따라서 연결 목록의 한 노드에는 다음이 포함됩니다. - 데이터 요소와 다음 노드의 주소. 다음과 같이 코딩해 보겠습니다.
  • 연결 목록에는 여러 노드가 있습니다.

  • 따라서 노드에 대한 하위 클래스가 있는 연결 목록 클래스를 만들 것입니다.
    첫 번째 노드에 데이터 요소가 포함되고 두 번째 노드에 대한 주소가 포함되고 두 번째 노드에 데이터 요소가 포함되고 그 뒤에 노드가 없기 때문에 null을 가리키는 연결 목록의 두 노드를 생성했다고 가정합니다.

    첫 번째 노드를 사용하여 두 번째 노드에 액세스할 수 있지만 첫 번째 노드에 어떻게 액세스할까요?
    연결 목록의 첫 번째 노드를 가리키는 포인터가 필요합니다.
    그래서 우리는 연결 리스트의 첫 번째 노드를 가리키기 위해 'head'라고 부를 노드를 만들 것입니다.


    이제 연결 목록의 각 노드에 쉽게 액세스할 수 있고 헤드를 사용하여 첫 번째 노드에 액세스할 수 있고 첫 번째 노드를 사용하여 두 번째 노드에 액세스할 수 있습니다.
    위의 내용은 다음과 같이 코딩할 수 있습니다.

    public class LinkedList {
    
        private Node head;
    
        private class Node {
            private int value;
            private Node next;
    
        }
    }
    


    나는 당신이 미리 객체 지향 프로그래밍에 어느 정도 익숙하다고 가정합니다.
    이제 연결 목록의 노드를 만들 때 노드에 포함된 데이터 요소가 될 값을 전달하려고 합니다. 따라서 이 목적을 위해 노드 클래스의 생성자를 생성합니다.

    public Node(int value) {
                this.value = value;
                this.next= null;
            }
    


    이제 전체 코드가 아래와 같습니다.

    public class LinkedList {
    
        private Node head;
    
        private class Node {
            private int value;
            private Node next;
    
            public Node(int value) {
                this.value = value;
                this.next= null;
            }
    
        }
    }
    


    이제 연결 리스트에서 수행할 수 있는 작업을 살펴보겠습니다. 이러한 연결 목록에서 수행할 수 있는 6가지 기본 작업이 있으며 이러한 작업을 통해 상황이 명확해집니다.
  • 순회
  • 삽입
  • 삭제
  • 검색 중
  • 정렬
  • 반전

  • 연결 리스트 순회

    연결 목록에서 고려해야 할 가장 중요한 사항은 다음과 같습니다.

    If the head node is lost the whole list is lost.



    연결 목록을 탐색하기 위해 노드를 만들고 이를 헤드 노드와 동일하게 설정합니다. 즉, 목록의 첫 번째 노드도 가리킬 것입니다.


    언제

    temp == null
    

    연결 목록의 끝에 도달했음을 의미합니다.
    다음은 연결 목록을 탐색하는 코드입니다.

    public void traverse() {
            Node temp = head;
            while (temp != null) {
                temp = temp.next;
            }
        }
    



    나머지 작업은 다음 블로그에서 계속하겠습니다. 계속 지켜봐 주세요 :)

    좋은 웹페이지 즐겨찾기