[그림으로 쉽게 배우는 자료구조와 알고리즘] 배열 연결리스트 스택 큐 덱 해시테이블 셋

[그림으로 쉽게 배우는 자료구조와 알고리즘] 배열 연결리스트 스택 큐 덱 해시테이블 셋

* 해당 포스팅은 그림으로 쉽게 배우는 자료구조와 알고리즘- by 감자 멘토님 강의를 수강후 작성하는 글 입니다.

 

KEYWORD

배열

  • 설명(한줄로): 연속된 메모리 공간에 데이터를 저장하는 선형 자료구조.

  • 시간복잡도:

    • 접근: O(1)

    • 삽입/삭제: O(n) (중간/앞에서), O(1) (끝에서)

    • 탐색: O(n) (정렬되지 않은 경우), O(log n) (정렬된 경우)

  • 유리한 케이스: 인덱스를 통해 데이터를 빠르게 접근할 때, 데이터 크기가 고정되어 있고 삽입/삭제가 자주 일어나지 않는 경우.


연결리스트 (Linked List)

  • 설명(한줄로): 각 노드가 데이터와 다음 노드를 가리키는 포인터로 연결된 선형 자료구조.

  • 시간복잡도:

    • 접근: O(n)

    • 삽입/삭제: O(1) (노드를 알고 있을 때)

    • 탐색: O(n)

  • 유리한 케이스: 크기가 동적이고, 삽입/삭제가 빈번하게 일어나는 경우. 특히, 중간에 데이터가 삽입되거나 삭제될 때.


스택 (Stack)

  • 설명(한줄로): 후입선출(LIFO, Last In First Out) 방식으로 데이터를 처리하는 자료구조.

  • 시간복잡도:

    • 접근: O(n)

    • 삽입/삭제: O(1) (top에서)

    • 탐색: O(n)

  • 유리한 케이스: 함수 호출 스택, 되돌리기 기능 등 후입선출 방식이 필요한 경우.


큐 (Queue)

  • 설명(한줄로): 선입선출(FIFO, First In First Out) 방식으로 데이터를 처리하는 자료구조.

  • 시간복잡도:

    • 접근: O(n)

    • 삽입/삭제: O(1) (front와 rear에서)

    • 탐색: O(n)

  • 유리한 케이스: 주문 처리 시스템, 프린터 대기열 등 선입선출 방식이 필요한 경우.


덱 (Deque, Double-Ended Queue)

  • 설명(한줄로): 양쪽 끝에서 삽입과 삭제가 가능한 자료구조.

  • 시간복잡도:

    • 접근: O(n)

    • 삽입/삭제: O(1) (양쪽 끝에서)

    • 탐색: O(n)

  • 유리한 케이스: 양방향에서 삽입/삭제가 자주 일어나는 경우. 예를 들어, 양쪽에서 데이터를 넣고 빼야 하는 데크나 스케줄링 시스템.


해시테이블 (Hash Table)

  • 설명(한줄로): 해시 함수를 이용해 키를 인덱스로 변환하여 데이터를 저장하는 자료구조.

  • 시간복잡도:

    • 접근: O(1) (평균), O(n) (최악의 경우)

    • 삽입/삭제: O(1) (평균), O(n) (최악의 경우)

    • 탐색: O(1) (평균), O(n) (최악의 경우)

  • 유리한 케이스: 키-값 쌍으로 데이터를 저장하고 빠르게 검색할 때. 특히, 데이터의 크기가 클 때 빠른 검색이 필요할 경우.


셋 (Set)

  • 설명(한줄로): 중복되지 않는 고유한 값들을 저장하는 자료구조.

  • 시간복잡도:

    • 접근: O(1) (해시셋인 경우)

    • 삽입/삭제: O(1) (평균), O(n) (최악의 경우)

    • 탐색: O(1) (평균), O(n) (최악의 경우)

  • 유리한 케이스: 중복이 없는 고유한 데이터를 관리할 때, 또는 값이 존재하는지 빠르게 확인할 때.

댓글을 작성해보세요.

채널톡 아이콘