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 여부를 반환한다
'자료구조' 카테고리의 다른 글
Queue (based LinkedList) 실습문제 (0) | 2020.10.27 |
---|---|
Queue (based LinkedList) 실습 (0) | 2020.10.27 |
Stack : PostFix (based LinkedList) 실습문제 (0) | 2020.10.27 |
Stack (based LinkedList) 실습문제 (0) | 2020.10.27 |
Stack (based Array) 실습문제 (0) | 2020.10.27 |