C# 스택(Stack) 클래스란?
C#의 Stack 클래스는 객체를 후입선출(LIFO, Last-In First-Out) 방식으로 저장하는 컬렉션입니다. 즉, 가장 나중에 추가된 요소가 가장 먼저 제거되는 구조로, 데이터를 역순으로 처리해야 하거나 마지막에 입력된 항목에 우선적으로 접근해야 하는 상황에서 유용하게 사용됩니다.
대표적인 활용 예시로는 실행 취소(Undo) 기능 구현, 브라우저 방문 기록 관리, 재귀 알고리즘 처리 등이 있습니다.
Stack 클래스의 주요 속성
Stack 클래스에서 자주 사용되는 속성은 다음과 같습니다.
- Count — 스택에 포함된 요소의 개수를 반환합니다.
Stack 클래스의 주요 메서드
Stack 클래스에서 제공하는 대표적인 메서드는 아래 표와 같습니다.
| 번호 | 메서드 및 설명 |
|---|---|
| 1 | public virtual void Clear(); 스택의 모든 요소를 제거합니다. |
| 2 | public virtual bool Contains(object obj); 특정 요소가 스택에 존재하는지 여부를 확인합니다. |
| 3 | public virtual object Peek(); 스택 최상위(맨 위)에 있는 객체를 제거하지 않고 반환합니다. |
| 4 | public virtual object Pop(); 스택 최상위에 있는 객체를 제거하고 반환합니다. |
| 5 | public virtual void Push(object obj); 스택의 최상위에 새로운 객체를 삽입합니다. |
| 6 | public virtual object[] ToArray(); 스택의 요소들을 새로운 배열로 복사하여 반환합니다. |
Peek()과 Pop()의 차이점
Peek()은 스택의 맨 위 요소를 확인만 하는 반면, Pop()은 해당 요소를 제거하면서 반환한다는 점이 핵심 차이입니다. 요소를 유지한 채 값을 확인하려면 Peek(), 실제로 꺼내서 사용하려면 Pop()을 사용하는 것이 좋습니다.
이처럼 C#의 Stack 클래스는 LIFO 구조가 필요한 다양한 프로그래밍 상황에서 간결하고 효율적인 데이터 관리를 가능하게 해주는 강력한 도구입니다.