Java의 연결된 목록에서 노드 제거

Sheeraz Gul 2023년10월12일
Java의 연결된 목록에서 노드 제거

이 자습서는 Java의 연결 목록에서 노드를 제거하는 방법을 보여줍니다.

Java의 연결된 목록에서 노드 제거

연결 목록은 연결 목록 데이터 구조를 구현하는 Java util 패키지의 데이터 구조 유형입니다. 연결 목록은 선형 데이터 구조로 간주되며 각 요소는 주소와 데이터 부분이 있는 별도의 개체이며 전염성 위치에는 요소가 저장되지 않습니다.

연결된 목록에서 노드를 삭제하는 것은 주어진 키의 첫 번째 항목을 삭제하는 프로세스에 따라 수행할 수 있습니다.

연결된 목록에서 노드를 삭제하는 단계는 다음과 같습니다.

  • 먼저 주어진 노드의 이전 노드를 찾아야 합니다. 이것은 노드가 삭제되기 전에 노드를 찾는 것을 의미합니다.
  • 다음 단계는 이전 노드의 텍스트를 변경하는 것입니다.
  • 마지막으로 삭제 가능한 노드의 메모리를 해제해야 합니다.

이것은 모든 노드가 C의 malloc() 메서드를 사용하여 동적으로 할당되는 반복 프로세스이므로 매번 메모리를 해제하려면 free() 메서드를 호출해야 합니다.

Java에서 주어진 연결 목록에서 노드를 삭제하는 예제를 시도해 봅시다.

package delftstack;

public class Example {
  class DemoNode {
    int NodeData;
    DemoNode NextNode;

    public DemoNode(int NodeData) {
      this.NodeData = NodeData;
      this.NextNode = null;
    }
  }

  // head and tail node
  public DemoNode HeadNode = null;
  public DemoNode TailNode = null;

  // to add new nodes
  public void Add_Node(int NodeData) {
    DemoNode NewNode = new DemoNode(NodeData);
    if (HeadNode == null) {
      HeadNode = NewNode;
      TailNode = NewNode;
    } else {
      TailNode.NextNode = NewNode;
      TailNode = NewNode;
    }
  }

  // To delete nodes
  public void DeleteNode() {
    if (HeadNode == null) {
      System.out.println("List is empty");
      return;
    } else {
      // Checks if the list contains only one element
      if (HeadNode != TailNode) {
        DemoNode current = HeadNode;
        // Iterate through the list till the second last element
        while (current.NextNode != TailNode) {
          current = current.NextNode;
        }
        TailNode = current;
        TailNode.NextNode = null;
      } else {
        HeadNode = TailNode = null;
      }
    }
  }

  // To display the node
  public void DisplayNode() {
    DemoNode CurrentNode = HeadNode;
    if (HeadNode == null) {
      System.out.println("List is empty");
      return;
    }
    while (CurrentNode != null) {
      System.out.print(CurrentNode.NodeData + " ");
      CurrentNode = CurrentNode.NextNode;
    }
    System.out.println();
  }

  public static void main(String[] args) {
    Example Linked_List = new Example();

    // Adds nodes to the list
    Linked_List.Add_Node(1);
    Linked_List.Add_Node(2);
    Linked_List.Add_Node(3);
    Linked_List.Add_Node(4);

    System.out.println("The Original List is: ");
    Linked_List.DisplayNode();

    while (Linked_List.HeadNode != null) {
      Linked_List.DeleteNode();

      System.out.println("The list after Deleting a Node: ");
      Linked_List.DisplayNode();
    }
  }
}

위의 코드는 먼저 연결된 목록에 노드를 추가한 다음 목록 끝에서 노드를 삭제합니다. 출력을 참조하십시오.

The Original List is:
1 2 3 4
The list after Deleting a Node:
1 2 3
The list after Deleting a Node:
1 2
The list after Deleting a Node:
1
The list after Deleting a Node:
List is empty
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Java Linked List