Software Courses/Data Structure

Stack & Queue

김 정 환 2020. 12. 13. 20:41
반응형

Stack

    - 나중에 넣은 element가 먼저 나오는 (LIFO : Last In First Out) 자료구조

특징

 

    - 삽입과 삭제 시간 복잡도 : O(1)

 

사용

    - 재귀 알고리즘에서 back-tracking할 때 주로 사용

    - 예시 : undo, 웹 페이지의 backward

 

 

 

 

Queue

    - 먼저 넣은 element가 먼저 나오는 (FIFO : First In First out) 자료구조

   

 

특징

    - 삽입과 삭제 시간 복잡도 : O(1)

 

사용

    - 시간 순으로 입력된 데이터를 처리하는 알고리즘에서 주로 사용

    - 예시 : 프로세스 관리, 프린터

 

종류

    - 선형 큐

        * 막대 모양

        * 크기가 제한되어 빈 공간을 사용하려면 모든 자료를 꺼내거나 자료를 한 칸씩 옮겨야 하는 단점

        * 오버플로우 : 큐가 꽉 차서 더 이상 넣을 수 없는 경우

        * 언더플로우 : 큐가 비어 있어 자료를 꺼낼 수 없는 경우

 

    - 환형 큐

        * 선형 큐에 공간이 남아 있지만 마지막 배열을 가리키고 있을 때 오버플로우가 발생하는 문제 해결

        * rear 위치가 큐의 front 위치에 닿으면, rear 위치는 front 위치를 가르키고 front 위치에 데이터를 넣는 방식

 

반응형

'Software Courses > Data Structure' 카테고리의 다른 글

Tree : Binary tree  (0) 2020.12.20
Hash table  (0) 2020.12.19
Heap  (0) 2020.12.19
Priority queue  (0) 2020.12.19
Array & Linked list  (0) 2020.12.13