큐(Queue)

SSAD·2023년 2월 23일
0

algorithm

목록 보기
5/9

큐의 개념

  • 입력과 출력을 다른 방향으로 함
  • FIFO(First In First Out)방식
  • 극장 매표소 앞에서 줄을 서는 것과 비슷

1. Put: 매표소 앞에 줄을 섬

2. Get: 줄을 선 순서대로 앞에서부터 표 구매


배열을 사용한 큐의 구현

def put(item):
    queue.append(item)
    
def get():
    return queue.pop(0)

if __name__ =="__main__":
    queue = []
    put(1)
    put(2)  
    put(3)       
    put(4)
    
    print("현재 queue의 모습")
    print(queue)
    
    while queue:
        print(f"get > {get()}")

1. 시간의 효율성

  • 배열로 구성되어 있지만, 시간적인 효율성 측면에서 배열로 하든 연결 리스트로 하든 상관없음
  • 스택과 큐 모두 검색과정이 필요 없기 때문

2. 공간의 효율성

  • 미리 정해놓은 배열의 크기만큼 한정적
  • 큐의 경우 원형 큐(Circular Queue)형태로 사용
  • 원형 큐라는 것은 뱀의 고리를 물고 있는 모양처럼 큐가 원형으로 되어있음
  • 따라서 배열의 전체 크기와는 상관없이 빙빙 돌면서 사용이 가능

3. 코드의 효율성

  • 원형 큐로 하는 경우에도 인덱스의 연산만으로 쉽게 구현 가능
profile
learn !

0개의 댓글