Stack
Stack
은 자료구조의 하나로서 FILO
(First-In-Last-Out, LIFO
와 같은 의미.)로 동작함.
많은 경우 접시 쌓기를 예로 사용하여 First-In-Last-Out (FILO), Last-In-First-Out (LIFO)를 설명한다.
- Stack에 저장되는 데이터 단위를 element(요소)라고 하며,
- 새로운 element가 Stack에 추가되는 것을 Push (데이터 삽입)라고 부르고,
- 현재 stack에서 element를 빼내는 동작을 Pop (데이터 삭제)이라고 부름.
Stack
을 class로 구현시 push
와 pop
은 method들로 구현됨.
참고로, Python에서의 list를 stack처럼 사용한다면,
`append`를 push로 사용하고,
pop은 list에서 제공하는 `pop`을 그대로 사용하면 된다.
좀 더 자세한 내용
Function calls, memory allocation 등에서 기본적으로 사용되기 때문에 대부분의 CPU들은 instruction set에서 `stack`을 위한 instruction을 따로 제공하며 HW적으로 구현하고 있음.
SW적으로는 expression evaluation이나, programming에서 "중가로 (curly bracket)" 등을 열고 닫았는지 체크하거나, Reverse Polish Notation (RPN)의 구현 등에서 자주 사용된다.
"C언어로 구현" 이나 "좀더 자세한 내용"은 다음 URL들을 참고할 것.
[CE] 프로그래머를 위한 (Logical) Memory 구조 : Stack, Heap, Code
프로그램 실행 시 OS에 의해서 프로그램의 process를 위해 마련되는 Memory의 구조는 다음 네 개의 영역으로 구분가능. (엄밀하게 애기하면, MMU를 사용하지 않는 경우 또는 MMU를 사용하는 경우엔 사
dsaint31.tistory.com
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D
스택 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다. 스택은
ko.wikipedia.org
https://buildgoodhabit.tistory.com/141
[자료구조 기초] Stack, 스택
이번에는 자료구조 중에서 스택에 대해 알아보자 한다. 스택은 쌓아 올린 더미를 표현한 것이며 데이터의 삽입과 삭제가 위 쪽 즉, 한쪽면에서만 이루어진다. stack을 사용하는 이유 출처 : 나무
buildgoodhabit.tistory.com
'Computer > CE' 카테고리의 다른 글
[CE] Classless Inter-Domain Routing 표기법: IP Address (0) | 2024.02.07 |
---|---|
[CE] Subdivision using DFS (0) | 2023.05.24 |
[Linux] Signal : SIGINT (0) | 2023.04.09 |
[CE] URL, URI and UNC (0) | 2023.04.09 |
[CE] Ex : 2's complement (1) | 2023.03.21 |