728x90
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들을 참고할 것.
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D
https://buildgoodhabit.tistory.com/141
반응형
'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 |