CS/자료구조

[자료구조] 원형 연결 리스트

tkxx_ls 2024. 6. 7. 15:18

원형 연결 리스트


원형 연결 리스트(Circular Linked List)는 마지막 노드가 첫 번째 노드를 가리키는 구조를 갖습니다. 이로 인해 리스트의 끝에서 다시 리스트의 시작으로 원활하게 순환할 수 있는 특성을 가집니다. 

 

원형 이중 연결 리스트의 각 노드는 일반적으로 두 부분으로 구성됩니다.

  1. 데이터(Data): 노드에 저장된 실제 정보.
  2. 다음 포인터(Next Pointer): 다음 노드를 가리키는 참조. 마지막 노드의 다음 포인터는 다시 첫 번째 노드를 가리킵니다.
  3. 이전 포인터(Previous Pointer): 이전 노드를 가리키는 참조. 첫 번째 노드의 이전 포인터는 마지막 노드를 가리킵니다.

특징


  • 시작 노드를 자유롭게 설정할 수 있어서, 어떤 특정 노드를 기준으로 리스트 전체 순회가 가합니다.
  • 순환 구조 이기 때에 어떤 노드에서 시작하든 리스트를 끝없이 순할 수 있습니다.
  • 원형 연결 리스트는 리스트의 끝을 추적하는 별도의 포인터가 필요 없기 때문에 다른 유형의 연결 리스트보다 공간 효율적일 수 있습니다.
  • 리스트의 원형 구조는 특정 애플리케이션에서 더 큰 유연성을 제공합니다. 예를 들어, 원형 연결 리스트는 새로운 요소를 추가하고 오래된 요소를 제거하면서 전체 리스트를 이동할 필요가 없는 링 또는 순환 버퍼를 나타내는 데 사용할 수 있습니다.
  • 원형 연결 리스트는 다른 유형의 연결 리스트보다 구현이 더 간단한 경우가 많습니다. 
  • 원형 연결 리스트는 삽입 및 삭제 연산을 위한 알고리즘과 관련하여 다른 유형의 연결 리스트보다 더 복잡할 수 있습니다. 예를 들어, 원형 연결 리스트에서 새 노드의 올바른 위치를 결정하는 것은 선형 연결 리스트보다 더 어려울 수 있습니다.
  • 원형 연결 리스트의 순회는 효율적일 수 있지만, 복잡한 구조를 가진 원형 리스트의 경우 선형 순회보다 더 어려울 수 있습니다.
  • 리스트의 원형 구조는 리스트의 끝에 도달했을 때를 결정하기 어렵게 만들 수 있습니다.