• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

doubly linked list 질문입니다.

24.03.20 09:01 작성 조회수 70

1

안녕하세요.

 

수업을 듣다 질문 사항이 생겨서 이렇게 문의 남깁니다.

 

 

doubly linked list로 구성된

'''

from collections import deque

# deque 선언

q = deque()

'''

에서 'enqueue ' , 'dequeue '의 시간 복잡도가 O(1)인데, 중간에 데이터가 삽입되고 삭제 되는 경우도 시간 복잡도가 O(1)인가요?

 

답변 1

답변을 작성해보세요.

0

안녕하세요 Cotton님.

 

doubly linked list 개념상 중간에 데이터 삽입하고 삭제하는 연산의 시간복잡도는 O(1)이여야 합니다.

하지만, 삭제하고 삽입하려면 해당 인덱스 위치를 특정해야되는데, 이 때 시간복잡도가 O(n)이 걸립니다.

 

그래서 결국 deque에서 중간 원소를 삽입하고 삭제하는데에 최종적으로 시간복잡도가 O(n)이 걸린다고 보시면 됩니다.

 

더 궁금한점이 있으면 편하게 질문 주세요~!