Stack의 특성을 설명해주세요.
Stack
Stack<string> numbers = new Stack<string>();
numbers.Push("one");
numbers.Pop()
Push()를 통해 데이터를 추가하고, Pop()을 통해 꺼내서 사용하는 자료구조
- 후입선출의 특성을 가져
Pop() 실행시 가장 마지막에 추가한 데이터가 출력됨
Pop()을 통해 데이터를 읽을 때 Stack에서 동시에 제거되는 특징이 있음
장단점
- 임시 저장소로서의 역할을 하기에 적합함.
Stack에 처리해야할 임시 변수를 Push()해 두고 이를 처리할 때 Stack이 빌 때까지 이를 Pop()하여 처리하게 할 수 있음
Push()와 Pop()이 시간복잡도가 O(1)이므로 Stack이 아무리 커져도 처리하는데 시간이 오래 걸리지 않음
- 다만
Stack에서 특정 요소를 검색하는 것은 비효율적이고, 중간에 있는 요소에 접근하는 것 또한 권장되지 않는다. 또한 후입선출이 아닌 선입선출 특성을 필요로할 때는 Queue를 사용해야 한다.