C# 스택(Stack) 클래스란?
스택(Stack)은 후입선출(LIFO, Last-In First-Out) 방식으로 데이터에 접근해야 하는 경우에 사용하는 컬렉션 클래스입니다. 이름 그대로 가장 마지막에 넣은 요소가 가장 먼저 꺼내지는 구조로, 접시를 차곡차곡 쌓아 올린 모습을 떠올리면 이해하기 쉽습니다.
스택에 새로운 요소를 추가하는 작업을 푸시(Push), 스택에서 요소를 제거하는 작업을 팝(Pop)이라고 부릅니다.
주요 멤버 정리
- Push(): 스택의 맨 위에 요소를 추가합니다.
- Pop(): 맨 위의 요소를 제거하면서 반환합니다.
- Peek(): 요소를 제거하지 않고 맨 위의 값만 확인합니다.
- Count: 스택에 들어 있는 요소의 개수를 반환합니다.
1단계: 스택에 요소 추가하기
먼저 Stack 객체를 생성한 뒤, Push() 메서드로 문자 'H'부터 'L'까지 순서대로 추가해 보겠습니다.
Stack st = new Stack();
st.Push('H');
st.Push('I');
st.Push('J');
st.Push('K');
st.Push('L');2단계: 요소 개수 확인하기
Count 속성을 사용하면 현재 스택에 저장된 요소의 개수를 간단히 확인할 수 있습니다.
Console.WriteLine("Count: "+st.Count);전체 예제 코드
using System;
using System.Collections;
namespace Demo {
class Program {
static void Main(string[] args) {
Stack st = new Stack();
st.Push('H');
st.Push('I');
st.Push('J');
st.Push('K');
st.Push('L');
Console.WriteLine("Count: "+st.Count);
}
}
}실행 결과
Count: 5
위 예제에서는 'H'부터 'L'까지 총 5개의 문자를 순서대로 푸시한 후 Count 속성으로 개수를 출력했습니다. 실행 결과 5가 정상적으로 출력되는 것을 확인할 수 있습니다. 만약 여기서 Pop()을 호출하면 가장 마지막에 넣은 'L'이 먼저 제거된다는 점도 기억해 두면 좋습니다.