본문 바로가기
반응형

Stack2

[Java] Stack vs Deque 공식 문서는 이렇게 말하고 있다. 더욱 완전하고 일관된 LIFO Stack 작업은 Deque 인터페이스 및 해당 구현을 사용하여 구현하는 것이다. 즉, Stack 대신 Deque의 구현체인 ArrayDeque 사용을 제안하고 있다. Java에서 Vector는 특정 상황에서 효율적이지 않기 때문에 Thread Safe 않다고 할 수 있다. 그렇기 때문에 Vector를 상속 받은 Stack은 다음과 같은 단점이 존재한다. 초기 용량 설정을 지원하지 않는다. 모든 작업에 Lock이 사용된다. 단일 스레드 실행 성능이 저하될 수 있다. 단순한 Iterator의 탐색 작업에서도 get() 메서드 실행시 매번 Lock이 발생하게 되므로 오버헤드가 커진다. Stack은 Vector를 상속 받았기 때문에 다중 상속을 .. 2022. 7. 25.
[Java] 자료구조 Stack에 관하여 1. Stack Stack이라는 단어는 더미 혹은 쌓다 라는 의미의 단어로, 단어의 뜻 그대로 데이터를 쌓아 올린 형태의 자료구조이다. 가장 마지막에 들어온 자료가 가장 먼저 빠져나가는 선형구조이며, 후입선출(Last In First Out, 나중에 들어간 값이 먼저 나온다) 자료구조를 구현한 자바 클래스이다. List Collection의 Vector를 상속 받은 Stack 메모리 구조의 클래스를 제공한다. 배열 기반 데이터 구조로 인덱스로 요소에 액세스 할 수 있다. 2. 특징 먼저 들어간 데이터가 나중에 빠져나가는 Last In First Out 인터럽트 처리, 수식의 계산, 서브 루틴의 복귀 번지 저장 등에 쓰인다. 그래프의 깊이 우선 탐색(DFS) 알고리즘에 사용된다. 재귀적(Recursion).. 2022. 7. 23.
반응형