"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python에서 단일 연결 목록을 구현하는 방법

Python에서 단일 연결 목록을 구현하는 방법

2024-11-02에 게시됨
검색:146

How to Implement Singly Linked List in Python

class Node:
    def __init__(self,value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def add_front(self,value):
        new_node = Node(value)
        new_node.next = self.head
        self.head = new_node
    def add_back(self,value):
        new_node = Node(value)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next is not None:
                current = current.next
            current.next = new_node
    def print_list(self):
        current = self.head
        while current is not None:
            print(current.value)
            current = current.next

list1 = LinkedList()

list1.add_front(1)
list1.add_front(2)
list1.add_back(3)
list1.print_list()

1. 노드 클래스:

  • 연결된 목록의 개별 요소를 나타냅니다.
  • 각 노드에는 데이터를 저장하는 값과 목록의 다음 노드를 가리키는 next라는 두 가지 속성이 있습니다.
  • 노드가 생성되면 다음 포인터가 없음으로 설정됩니다.

2. LinkedList 클래스:

  • 연결된 목록 작업을 관리합니다.
  • 연결된 목록의 시작점인 속성 헤드가 있습니다. 처음에는 목록이 비어 있으므로 head가 None으로 설정됩니다.

3. add_front 메소드:

  • 연결된 리스트 앞에 새 노드를 추가합니다.
  • 주어진 값으로 새 노드가 생성됩니다.
  • 새 노드의 다음 포인터는 목록의 현재 헤드로 설정됩니다.
  • 그런 다음 목록의 헤드가 새 노드로 업데이트됩니다.

4. add_back 메소드:

  • 연결된 목록의 끝에 새 노드를 추가합니다.
  • 주어진 값으로 새 노드가 생성됩니다.
  • 목록이 비어 있으면(즉, 헤드가 없음) 새 노드가 헤드로 설정됩니다.
  • 목록이 비어 있지 않으면 목록의 끝으로 이동한 다음 마지막 노드의 다음 포인터가 새 노드를 가리키도록 업데이트합니다.

5. print_list 메소드:

  • 연결리스트의 모든 값을 처음부터 끝까지 인쇄합니다.
  • 헤드에서 시작하여 끝(없음)에 도달할 때까지 다음 포인터를 사용하여 각 노드를 반복하여 각 노드의 값을 인쇄합니다.

6. 사용 예:

  • LinkedList의 인스턴스가 생성됩니다.
  • add_front는 목록 앞에 값 1과 2를 가진 노드를 추가하기 위해 두 번 호출됩니다.
  • add_back은 목록 끝에 값이 3인 노드를 추가하기 위해 호출됩니다.
  • print_list는 연결된 목록의 모든 노드 값을 인쇄하기 위해 호출됩니다. 출력은 2, 1, 3이며 노드가 올바르게 추가되었음을 나타냅니다.
릴리스 선언문 이 기사는 https://dev.to/thirumalesh/how-to-implement-singly-linked-list-in-python-40kc?1 에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]에 연락하여 삭제하시기 바랍니다. 그것
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3