Python/기초문법

[자료구조] 스택(Stack), 큐(Queue)

gangee 2023. 5. 17. 14:32

목차

    728x90
    반응형

    스택 - LIFO(Last in, First out), 큐 - FIFO(First in, First out)

    1. 큐(Queue)

    • 먼저 입력된 데이터가 먼저 출력되는 구조
    • FIFO(First In, First Out) 혹은 LILO(Last In, Last Out) 이라고 부름
    • Enqueue(인큐) : 큐에서 데이터를 입력하는 기능
    • Dequeue(디큐) : 큐에서 데이터를 꺼내는 기능

    파이썬 내장함수 queue

    • put() : 데이터를 넣을 때 사용하는 메소드
    • get() : 데이터를 꺼내는 메소드

    예시 코드

    • 내장함수 사용
    import queue
    
    df = queue.Queue()
    
    df.put(1)
    df.put(2)
    df.put(3)
    
    print(df.get())
    print(df.get())
    print(df.get())
    -----------------------------
    > 1
    > 2
    > 3
    • 내장함수 사용 X
    q = []
    
    q.append(1)
    q.append(2)
    q.append(3)
    
    print(q.pop(0))
    print(q.pop(0))
    print(q.pop(0))
    -----------------------------
    > 1
    > 2
    > 3

    2. 스택(Stack)

    • 나중에 입력된 데이터가 먼저 출력되는 구조
    • LIFO(Last In, First Out)
    • push : 데이터를 입력
    • pop : 마지막으로 입력된 순서부터 데이터를 꺼내기

    예시 코드

    st = []
    
    st.append(1)
    st.append(2)
    st.append(3)
    
    print('st:', st)
    
    print(st.pop())
    print(st.pop())
    print(st.pop())
    -----------------------------
    > st:[1, 2, 3]
    > 3
    > 2
    > 1
    728x90
    반응형