스택(Stack)
- 스택: 먼저 들어온 데이터가 나중에 나가는 자료구조
- 흔히 박스가 쌓인 형태를 스택(stack)이라고 한다
- 우리가박스를쌓은뒤에꺼낼때는,가장마지막에올렸던박스부터꺼내야한다.
- 새로운 원소를 삽입할 때는 마지막 위치에 삽입한다.
- 새로운 원소를 삭제할 때는 마지막 원소가 삭제된다.
Stack 시간 복잡도
연산 | 시간 복잡도 설명 | 설명 | |
1 | 삽입(Push) | 𝑂(1) | 스택에 원소를 삽입하는 연산 |
2 | 추출(Pop) | 𝑂(1) | 스택에서 원소를 추출하는 연산 |
3 | 최상위 원소(Top) | 𝑂(1) | 스택의 최상위 원소(가장 마지막에 들어온 원소)를 확인하는 연산 |
3 | Empty | 𝑂(1) | 스택이 비어있는지 확인하는 연산 |
JS에서의 Stack
- JavaScript에서 스택을 구현할 때 배열(Array) 자료형을 사용한다.
- 𝑝𝑜𝑝() 메서드: 마지막 위치에서 원소를 추출하며, 시간 복잡도는 𝑂(1) 이다.
- 𝑝𝑢𝑠h() 메서드: 마지막 위치에 원소를 삽입하며, 시간 복잡도는 𝑂(1) 이다.
let stack = [];
// 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
stack.push(5);
stack.push(2);
stack.push(3);
stack.push(7);
stack.pop();
stack.push(1);
stack.push(4);
stack.pop();
console.log(stack); // [ 5, 2, 3, 1 ]
연결리스트로 스택 구현하기
- 스택을연결리스트로구현하면, 삽입과 삭제에있어서 𝑂(1)을 보장할 수 있다.
- 연결 리스트로 구현할 때는 머리(head)를 가리키는 하나의 개의 포인터만 가진다.
- 머리(head): 남아있는 원소 중 가장 마지막에 들어 온 데이터를 가리키는 포인터
'자료구조 & 알고리즘 > 자료구조' 카테고리의 다른 글
[자료구조]_그래프(Graph)의 표현 (0) | 2023.03.30 |
---|---|
[자료구조]_트리(Tree)와 우선순위 큐(Priority Queue) (0) | 2023.03.29 |
[자료구조]_큐(Queue) (0) | 2023.03.29 |