본문 바로가기
목차훔치기/면접을 위한 CS 전공지식 노트

스택(면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 10. 27.
728x90
반응형
스택

스택

스택(Stack)은 컴퓨터 과학과 정보 기술에서 중요한 자료 구조 중 하나로,

데이터를 저장하고 관리하는 데 사용됩니다.

스택은 데이터 요소를 일종의 선형 데이터 구조로 저장하며,

이 데이터 요소는 일반적으로 "푸시(push)" 및 "팝(pop)"이라는 두 가지 기본 연산을 사용하여 조작됩니다. 스택은 후입선출(Last-In, First-Out, LIFO) 원칙을 따릅니다.

이것은 가장 마지막에 추가한 요소가 가장 먼저 제거되는 것을 의미합니다.

 

스택의 특징과 연산

푸시 (Push): 

스택에 요소를 추가하는 연산을 말합니다. 

이 연산은 스택의 상단(맨 위)에 새로운 요소를 삽입합니다.

팝 (Pop): 

스택에서 요소를 제거하는 연산을 말합니다. 이 연산은 스택의 상단 요소를 제거하고 반환합니다.

피크 (Peek):

스택의 상단 요소를 반환하지만 제거하지 않는 연산을 말합니다.

이를 통해 다음에 팝될 요소를 확인할 수 있습니다.

공백 검사 (Empty Check): 

스택이 비어 있는지 여부를 확인하는 연산입니다.

스택은 주로 함수 호출 스택(call stack), 역추적(traceback) 및 임시 데이터 저장에 사용됩니다. 

예를 들어, 함수를 호출할 때 현재 상태를 스택에 저장하고 함수가 실행을 완료하면 

스택에서 상태를 복원하여 함수 호출을 되돌립니다. 

이를 통해 재귀 함수와 같은 프로그램 구조를 구현할 수 있습니다.

스택은 배열(array) 또는 연결 리스트(linked list)를 사용하여 구현할 수 있으며, 

언어 및 환경에 따라 내장 스택 구조를 제공하기도 합니다.

스택은 데이터의 순서를 유지하고 데이터가 추가 및 제거되는 방식에 따라 다양한 응용 분야에서 유용하게

활용됩니다.

 

스택 자세히 알기!!

여러분 앞에 책이 쌓여있는 책 더미가 있습니다. 이 책 더미를 스택으로 생각해보겠습니다.

푸시 (Push): 

스택에 새로운 책을 추가하는 동작입니다. 

이 동작은 현재 책 더미의 맨 위에 새 책을 올려놓는 것과 같습니다. 

새로운 책을 쌓아서 스택에 추가하면 이제 그 책이 스택의 맨 위에 있게 됩니다.

팝 (Pop): 

스택에서 책을 제거하는 동작입니다. 

이 동작은 스택의 맨 위에 있는 책을 하나씩 뺴내는 것과 같습니다. 

팝을 할 때, 가장 최근에 스택에 추가한 책이 먼저 나오게 됩니다.

피크 (Peek): 

스택의 맨 위에 있는 책을 확인하는 동작입니다. 

이 동작은 책을 실제로 제거하지는 않고, 맨 위의 책이 어떤 것인지 확인할 수 있습니다.

공백 검사 (Empty Check):

스택이 비어 있는지 여부를 확인하는 동작입니다.

스택이 아무 책도 가지고 있지 않으면 비어있다고 판단됩니다.

스택은 컴퓨터 과학에서 함수 호출, 브라우저 히스토리 관리, 언두/레두(undo/redo) 작업, 

실시간 데이터 스냅샷 관리, 깊이 우선 탐색(DFS) 등 다양한 응용 분야에서 사용됩니다. 

이 예시를 통해 스택이 어떻게 동작하는지 더 잘 이해하실 수 있을 것입니다.

 

728x90
반응형