큐의 특성
큐의 기본연산
큐의 사용을 위해 필요한 주요연산은 다음과 같음
1차원 배열을 이용한 큐
상태 표현
초기 공백 큐 생성
삽입 : enQueue(item)
삭제 : deQueue()
공백상태 및 포화상태 검사 : isEmpty(), isFull()
def isEmpty():
return front == rear
def isFull():
return rear == len(Q)-1
def Qpeek():
if isEmpty() :
print("Queue_Empty")
else:
return Q[front+1]
def enqueue(data):
global rear
rear += 1
queue[rear] = data
def dequeue():
global front
front += 1
return queue[front]
queue = [0]* 10
front = -1
rear = -1
enqueue(1)
enqueue(2)
enqueue(3)
print(dequeue())
print(dequeue())
if front != rear:
print(dequeue())
if front != rear:
print(dequeue())
from collections import deque
q1 = deque()
q1.append(1)
q1.append(2)
q1.append(3)
print(q1.popleft())
print(q1.popleft())
print(q1.popleft())
잘못된 포화상태 인식
해결방법 1
해결방법 2
초기 공백 상태
index의 순환
front 변수
삽입 위치 및 삭제 위치
초기 공백 큐 생성
공백상태 및 포화상태 검사 : isEmpty(), isFull()
def isEmpty() :
return front == rear
def isFull():
return (rear+1) % len(cQ) == front
삽입
삭제
그래프를 탐색하는 방법 2가지
BFS는 출발점이 여러개 일 수 있다
-> 초기에 출발점 여러개를 queue에 넣어주고 시작하면 됨