ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Chap 04.큐(Queue)
    자료구조 with 윤성우 2021. 1. 26. 13:06

    먼저 들어간 것이 먼저 나오는

    First In First Out   =   FIFO
    ex) 줄서기


    typedef struct_lQueue
    {
    	Node* front;
    	Node* rear;
    }LQueue;	//연결리스트
    
    typedef struct _cQueue
    {
    	int front;
    	int rear;
    	Data queArr[QUE_LEN];
    }CQueue;	//배열

    rear - 입구를 나타내는 인덱스/노드
    front - 출구를 나타내는 인덱스/노드

    데이터 저장(enqueue) 하면 rear 이 이동
    데이터 삭제(dequeue) 하면 front 가 이동


    큐(배열)의 문제점


    비어있는 배열이 있지만, R이 오른쪽으로 이동할 수가 없다.
    따라서, 이런 단점을 보완하기 위해 '원형 큐'가 도입되었다.

     


    원형 큐의 문제점

    R + 1 == F    ==> 원형 큐가 꽉참
    R + 1 == F    ==> 원형 큐가 텅빔
    즉, 큐가 꽉차면서 텅비었다? 텅빈것과 꽉 찬것이 구분이 안된다는 문제점 발생

    ----------------------------------------------------해결법-------------------------------------------------------

    원형 큐가 초기화될때 F와 R이 같은 index(0)를 가리키게함.
    데이터가 저장될때 R은 index를 1 증가한 후 저장한다.

    즉, 원형 큐의 0 index를 버린다.


     

    출처 : 윤성우의 열혈 자료구조

    '자료구조 with 윤성우' 카테고리의 다른 글

    Chap 06. 우선순위 큐  (0) 2021.01.29
    Chap 05. 트리  (0) 2021.01.29
    Chap 03. 스택(stack)  (0) 2021.01.26
    Chap 02. 연결리스트  (0) 2021.01.26
    Chap 01. 자료구조와 알고리즘의 이해  (0) 2021.01.24

    댓글

Designed by Tistory.