자료구조

Queue (based Array) 실습

FDEE 2020. 10. 27. 15:40

1. First in First out

- 처음 들어온 자료가 처음 나온다 <-> Stack과 상반되는 개념

 

2. class Queue (based Array)

- int front : 자료의 맨앞 index 위치, 초기값 = 0

- int rear : 자료의 마지막 index 위치, 초기값 = -1

- int capaticy : 큐의 크기

- int* Q : 배열의 포인터

 

3. enqueue(data)

- 큐의 rear에 data를 추가한다

- 원형큐의 경우 size() 값이 capacity-1 인 경우 Full 상태를 반환한다

- 그외의 경우 rear = (rear+1)%capacity 로 수정한다

- Q[rear]위치에 data를 넣는다

 

4. dequeue()

- 큐의 front를 반환하며 제거한다

- 큐가 비어있는 경우 Empty 상태를 반환한다

- Q[front] 위치의 값을 임시저장한다

- Q[front] 값을 0으로 수정한다

- 원형큐의 경우 front = (front+1)%capacity 로 수정한다

 

5. front()

- 큐가 비어있는 경우가 아닌경우 Q[front] 값을 반환한다

 

6. rear()

- 큐가 비어있는 경우가 아닌경우 Q[rear] 값을 반환한다

 

7. size()

- 큐의 개수를 반환한다

- 원형큐의 경우 : (rear-front+1 + capaticy)%capacity 반환한다

 

8. empty()

- 개수가 0개인 경우 1 반환한다

- 원형큐의 경우 (rear+1)%capacity == front 여부를 반환한다