Algorithm Problems

[Python] 원형 큐 사용 방법

WakaraNai 2021. 8. 5. 19:35
728x90
반응형

비어있는 큐 생성

q = [0]*5
front, rear = 0, -1

 

 

삽입, 삭제

# 삽입
rear = (rear+1) 
q[rear] = 2
print(q[front:rear+1])

[2]

 

# 삽입 - index out of range 방지
rear = (rear+1)%len(q)
q[rear] = 10
print(q[front:rear+1])

[2, 10]

 

# %len(q) 참고 -> 0~4 사이 인덱스 값이 반복되는 것을 확인할 수 있다
for i in range(0,12):
  print(i%len(q), end = " ")

0 1 2 3 4 0 1 2 3 4 0 1

 

# 삭제
front = (front+1)%len(q)
print(q[front:rear+1]) # 처음에 추가한 2 삭제

[10]

 

길이 구하기

# 길이 구하기
q = [0]*5
front, rear = 0, -1
length = 0 # 처음 큐를 생성할 때 length 용 변수 생성
# length에 삽입 시 +1, 삭제 시 -1
def enqueue(data): # 함수로 만들어서 사용하자는 의미가 아닌,
  global rear, q, length  # 이러한 방식으로 동작함을 참고
  rear = (rear+1) % len(q)
  q[rear] = data
  length += 1

def dequeue():
  global front, q, length
  front = (front+1) % len(q)
  length -= 1

 

큐 출력하기

enqueue(20)
enqueue(5)
enqueue(50)
dequeue()

for i in range(front, front+length):
  print(q[i % len(q)], end = " ")

5 50

728x90
반응형