| 연산 | 기능 |
|---|---|
| enQueue | 큐의 뒤쪽(rear 다음)에 원소를 삽입하는 연산 |
| deQueue | 큐의 앞쪽(front)에서 원소를 삭제하고 반환하는 연산 |
| createQueue() | 공백 상태의 큐를 생성하는 연산 |
| isEmpty() | 큐가 공백상태인지를 확인하는 연산 |
| isFull() | 큐가 포화상태인지를 확인하는 연산 |
| Qpeek() | 큐의 앞쪽(fornt)에서 원소를 삭제 없이 반환하는 연산 |
1) 공백 큐 생성 : createQueue(); → front = rear = -1
2) 원소 A 삽입 : enQueue(A); → front = -1, rear = 0
3) 원소 B 삽입 : enQueue(B); → front = -1, rear = 1
4) 원소 삭제 : deQueue(); front = 0, rear = 1
5) 원소 C 삽입 : enQueue(); front = 0, rear = 2
6) 원소 반환/삭제 : deQueue(); front = 1, rear =2
7) 원소 반환/삭제 : deQueue(); front = 2, rear =2
def enQueue(item):
global rear
if isFull(): print("Queue Full")
else:
rear = rear + 1
Q[rear] = itemdef deQueue():
if (isEmpty()): print(Queue_Empty())
else: front = front + 1
return Q[front]def isEmpty():
return front == rear
def isFull():
return rear == len(Q) - 1def Qpeek():
if isEmpty() : print("Queue_Empty()")
else: return Q[front+1]mod 사용| 삽입위치 | 삭제 위치 | |
|---|---|---|
| 선형큐 | rear = rear + 1 | front = front + 1 |
| 원형큐 | rear = (rear + 1) mod n | front = (front + 1) mod n |
def isEmpty():
return front == rear
def isFull():
return (rear+1) % len(cQ) == frontdef enQueue(item):
global rear
if isFull(): print("Queue Full")
else:
rear = (rear + 1) % len(cQ)
cQ[rear] = itemdef deQueue():
if (isEmpty()): print("Queue_Empty()")
else: front = (front + 1) % len(cQ)
return cQ[front]from collections import deque
q = deque
q.append(1) # enqueue()
t = q. popleft() # dequeue()버퍼
버퍼의 자료구조