-
자료구조 - 스택(Stack)CS/자료구조 2021. 6. 26. 12:25
- 스택 구조
- 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조
- 스택은 LIFO(Last In, First Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름
- LIFO: 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책
- FILO: 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 정책
- 대표적인 스택의 활용
- 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
- 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
- 주요 기능
- push(): 데이터를 스택에 넣기
- pop(): 데이터를 스택에서 꺼내기
- 시연: https://visualgo.net/en/list
- 스택의 장단점
- 장점
- 구조가 단순해서 구현이 쉽다.
- 데이터 저장/읽기 속도가 빠르다.
- 단점
- 데이터 최대 개수를 미리 정해야 한다.
- 저장 공간의 낭비가 발생할 수 있다.
- 미리 최대 개수만큼의 저장 공간을 확보해야 함
- 미리 최대 개수만큼의 저장 공간을 확보해야 함
- 스택은 단순하고 빠른 성능을 위해 사용되므로 보통 배열 구조를 활용해서 구현하는 것이 일반적임
이 경우, 위에서 열거한 단점 발생
- 파이썬으로 Stack 구현
data_stack = list() data_stack.append(1) data_stack.append(2) data_stack.pop() // 2 // 리스트 변수로 스택을 다루는 pop,push 기능 구현 stack_list = list() def push(data): stack_list.append(data) def pop(): data = stack_list[-1] del stack_list[-1] return data
- 자바스크립트로 Stack 구현
class Stack { constructor() { this.stack = []; } push(data) { this.stack.push(data); } pop() { return this.stack.pop(); } } const stack = new Stack(); stack.push(1); stack.push(2); stack.pop(); // 2
'CS > 자료구조' 카테고리의 다른 글
자료구조 - 링크드 리스트(Linked List) (0) 2021.06.30 자료구조 - 큐(Queue) (0) 2021.06.25 자료구조 - 배열(Array) (0) 2021.06.25 자료구조란 ? (0) 2021.06.25