스택, 큐

SeungJoo
|2024. 2. 13. 23:26
728x90

스택

컴퓨터 과학에서 매우 중요한 자료구조 중 하나이며 이름 그대로 스택은 데이터를 쌓아 올린 형태를 가지고 있습니다. 이를 비유하면, 식당에서 쌓여있는 접시 더미나 책상 위에 쌓아 올린 형태를 가지고 있습니다. 이를 비유하면, 식당에서 쌓여있는 접시 더미나 책상 위에 쌓인 책처럼 데이터가 차곡차곡 쌓이는 모습을 상상할 수 있습니다. 또한 데이터의 저장과 삭제가 한쪽 끝에서만 이루어지는 특징을 가지고 있습니다. 이 한쪽 끝을 보통 위쪽이라고 하며 새로운 데이터가 스택에 추가되면 그 데이터는 스택의 위로 올라갑니다. 이것을 PUSH라고 합니다. 반대로 데이터를 삭제할 때는 가장 위에 있는 데이터가 먼저 삭제됩니다. 이것을 POP이라고 합니다.

 

스택은 주로 함수 호출이나 재귀 알고리즘 등에서 사용됩니다. 예를 들어 함수를 호출할 때마다 호출된 함수의 정보는 스택에 저장되며, 함수가 실행을 마치면 해당 정보는 스택에서 제거됩니다. 이러한 특성은 스택을 사용하여 함수 호출의 순서를 추적하고 함수 호출을 관리하는 데 매우 유용하게 활용되며 스마트폰에서 뒤로 가기 기능처럼 이전 동작을 유지하고 관리하는 데에도 사용됩니다. 사용자가 새로운 동작을 수행할 때마다. 이전 동작을 스택에 추가되고 사용자가 뒤로 가기를 요청하면 가장 최근에 수행한 동작이 스택에서 제거되어 이전 동작으로 돌아갈 수 있습니다. 

 

후입 선출 (LIFO : Last-In First-Out)

스택의 가장 큰 특징 중 하나입니다. 이는 스택에 데이터를 추가할 때는 가장 최근에 추가된 데이터가 가장 위에 위치하게 되고, 데이터를 삭제할 때는 가장 위에 있는 데이터가 가장 먼저 삭제되는 원칙을 의미하며 이것을 식당에서의 접시 쌓기나 책상 위에 쌓은 책의 형태로 비유할 수 있습니다. 새로운 접시를 쌓을 때는 가장 위에 쌓고 가장 위에 있는 접시를 가져다가 사용할 때도 가장 위에 있는 접시가 먼저 사용됩니다. 이와 마찬가지로, 스택에 새로운 데이터를 추가할 때는 최신 데이터가 스택의 맨 위에 쌓이며, 데이터를 가져올 때는 가장 최근에 쌓인 데이터가 먼저 제거됩니다. 따라서 후입선출은 스택이라는 자료구조의 핵심적인 특성 중 하나이며, 함수 호출과 같이 최신 정보를 가장 우선적으로 다루어야 하는 상황에 매우 유용하게 활용됩니다.

 

큐(FIFO)

스택과는 달리 데이터의 추가와 삭제가 선입선출(FIFO)의 구조를 가지고 있습니다. 이는 가장 먼저 도착한 데이터가 가장 먼저 처리되는 구조를 말합니다. 예를 들어 설명하면, 음식점에서 손님이 줄을 서는 상황을 예시를 들어보면 가장 먼저 손님이 음식을 받고 나가고, 그 뒤에 온 손님이 차례로 음식을 받게 됩니다. 이처럼 먼저 도착한 손님이 가장 먼저 서비스를 받고, 그 뒤에 온 손님이 순서대로 서비스를 받는 것이 큐의 동작 방식과 비슷합니다.

 

큐는 다양한 응용 분야에서 활용되며 컴퓨터 시스템에서는 프로세스 스케줄링이나 작업 대기열 관리등에 사용됩니다. 또한 네트워크 통신에서도 데이터를 일시적으로 저장하는 버퍼로서의 역할을 수행하며, 웹 서버에서는 요청을 처리하는 데에도 활용됩니다.

728x90

'컴퓨터구조' 카테고리의 다른 글

배열 & 링크드리스트  (0) 2024.02.14
컴퓨터 구조 (소스코드, 명령어)  (0) 2023.10.01
컴퓨터 구조(0,1숫자 문자표현)  (0) 2023.08.16