킵고잉·2025년 1월 1일

-1) 큐의 개념

큐 : 줄을 세운다 !
먼저 들어간 데이터가 먼저 나오는 자료구조 (FIFO)
삽입하는 연산을 push, 꺼내는 연산을 pop

-2) 큐의 정의

큐의 ADT

1.isFull()
2.isEmpty()
3.push()
4.pop()
5.front : 마지막에 팝한 위치
6.rear : 최근에 푸시한 데이터 위치
7.data[maxsize]

큐 구현하기

발생한 순서대로 처리를 해야할 때 큐 떠올리기

  1. 리스트를 큐처럼 활용하기
queue=[]

queue.append(1)
queue.append(2)
queue.append(3)

first_item=queue.pop(0)
print(first_item) # 1

queue.append(4)
queue.append(5)

first_item=queue.pop(0)
print(first_item) # 2

스택과의 차이점은 pop의 인수로 0을 사용하는 것, 인수를 넣지 않으면 맨 뒤에 읶는 원소가 삭제 됨

  1. 덱을 큐처럼 활용하기
    덱 : double-ended queue양 끝에서 삽입이나 삭제 가능
    -> 큐를 구현할 때는 덱을 사용하는 것이 좋다 ! ( 더 빠름 )
    그냥 pop(0) 대신 popleft() 쓰는 것임
from collections import deque

queue=deque()
queue.append(1)
queue.append(2)
queue.append(3)

first_item=queue.popleft()
print(first_item) # 1

queue.append(4)
queue.append(5)

first_item=queue.popleft()
print(first_item) # 2
profile
열심히 하면 되겠지

0개의 댓글