Python/자료형과 기본 문법
Python 스택(Stack), 큐(Queue)
Yonggyu
2023. 9. 15. 11:32
반응형
스택 (Stack ) : LIFO (Last In First Out)
스택은 여러 개의 데이터 항목들이 일정한 순서로 나열된 자료구조로, 한쪽 끝에서만 새로운 항목을 삽입하거나 삭제할 수 있는 선형 구조이다.
스택은 LIFO (Last In First Out) 의 구조로 데이터를 삽입하거나 추출하는 구조이다. LIFO는 '후입선출'이라하며 들어온 데이터를 맨끝에 저장하고 데이터가 나갈때도 맨끝부터 나간다. 일상생활속에서의 예로는 대형마트의 카트나 배드맨턴 셔틀콕을 생각하면 이해하기 쉽다. 역추적, 재귀 알고리즘에서 유용하게 쓰인다.
stack = [1,2,3,4,5]
stack.append(6) # 맨끝에 6추가
stack.append(7) # 맨끝에 7추가
print(stack)
stack.pop()
print(stack)
stack.pop()
print(stack)
"""
결과값
[1, 2, 3, 4, 5, 6, 7] -> In
[1, 2, 3, 4, 5, 6] -> Out
[1, 2, 3, 4, 5]
"""
위 코드를 보면 데이터가 들어올때 맨 끝에 6이 추가되고 그다음에 또 7이 추가된다, 그리고 나갈때도 7이먼저 나가고
그다음 6이 나간다 이것이 Stack 자료구조이다.
큐 (Queue) : FIFO (First in First Out)
큐도 스택과 비슷한 구조로 데이터 항목들이 일정한 순서로 나열된 선형구조이다.
Stack과는 다른점은 FIFO (선입선출) 로 제일먼저 들어온 데이터가 제일먼저 나가는 구조이다. 일상생활의 예시로는 줄을 먼저 선 사람부터 차례로 입장하여 나가는 경우를 말한다. 큐는 데이터를 입력된 순서대로 처리할 때 효과적이다.
queue = [1,2,3,4,5]
queue.append(6) # 맨끝에 6추가 [1, 2, 3, 4, 5, 6]
queue.pop(0) # 1 제거
queue.pop(0) # 2 제거
print(queue)
"""
결과값
[3, 4, 5, 6]
"""
위코드를 보면 순서대로 제일 먼저 들어온것이 제일먼저 나가고 맨마지막에 들어온 데이터가 맨마지막에 나간다.
이것이 큐 자료구조이다.
728x90
반응형