본문 바로가기

Theory/Algorithms

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

반응형

스택 (Stack) 과 큐 (Queue) 는 프로그래밍에서 가장 기본적으로 사용하는 고전적인 자료 구조임과 동시에 특히 스택은 거의 모든 애플리케이션을 만들 때 사용됩니다.

스택은 Last In First Out (선입후출) 의 자료구조로 마지막에 들어온 원소가 가장 먼저 추출됩니다. 잔뜩 쌓인 접시를 생각하면 됩니다. 스택의 개념은 자료를 저장하는 자료구조와 동시에 컴퓨터 프로그램의 서브루틴에 대한 정보로 활용됩니다. 가장 마지막에 저장된 커맨드가 실행되는 식이죠.

큐는 스택과 반대로 First In First Out (선입선출) 의 자료구조로 가장 먼저 들어온 원소가 가장 먼저 추출됩니다. 일반적인 대기열을 생각하면 되겠네요. 

파이썬에서는 스택과 큐의 자료구조를 따로 제공하지는 않으나 리스트가 관련 연산의 모든 것을 지원합니다. 리스트의 append() 메소드는 자료구조에 원소를 마지막에 추가하고 pop() 메소드는 마지막 원소를 추출 (스택 연산), pop(0) 메소드는 첫 번째 원소를 추출 (큐 연산)을 지원합니다.

반응형