- LIFO 구조
- top 포인터로 index 접근을 하기 때문에 속도가 빠르다.
- 추가적인 메모리 소모는 없지만 스택의 크기가 한정적이다.
- 크기 확장시 O(n)의 비용이 소모된다.
- push의 시간복잡도 : O(1)
- pop의 시간복잡도 : O(1)
- size의 시간복잡도 : O(1)
- head 노드에서 push, pop을 구현하면 O(1)의 시간복잡도가 된다.
- Array에 비해 구현에 추가적인 메모리를 소모하지만 크기를 동적으로 늘릴 수 있다.
- push의 시간복잡도 : O(1)
- pop의 시간 복잡도 : O(1)
- size의 시간 복잡도 : O(N)
- 단방향과 같은 시간복잡도
- 노드 추가시 양방향에 대한 연결 처리 때문에 속도와 메모리 비용이 요구됨.
- push의 시간복잡도 : O(1)
- pop의 시간복잡도 : O(1)
- size의 시간 복잡도 : O(N)
- 스택의 최대 크기를 확정적으로 알 수 있는 경우 Array를 이용해 구현하는 것이 좋다.
- 일반적으로 크기를 상황에따라 확장 시키기 때문에 Array의 경우 크기 확장시 2배의 비용이 들어 단방향 LinkedList로 구현하는것이 더 효율적이다.