이전 글에서 Queue에 대해 알아보았습니다. 이번에는 C# 컬렉션 중 Stack에 대해 알아보겠습니다. Stack은 Queue와 같이 데이터를 저장할 수 있는 컬렉션이지만 입출력되는 방식은 Queue와 전혀 다릅니다.
1. Stack
Stack은 데이터 입출력 방식이 Queue와는 다릅니다. Queue는 데이터가 입력되면 가장 마지막 데이터가 되며 데이터를 출력하면 제일 첫 번째 데이터가 추출됩니다. 하지만, Stack은 데이터가 입력되면 제일 마지막에 입력되며, 데이터를 출력하면 제일 마지막 데이터가 추출됩니다.
이는 블록쌓기로 블록을 쌓으면 제일 처음에 쌓는 블록은 가장 밑에 쌓이며 그 위로 하나씩 쌓이는 것과 같습니다. 그리고 블록을 뺄 때 제일 위에 있는 가장 나중에 쌓았던 블록을 빼내는 것을 상상하시면 이해가 쉬우실 것입니다.
Stack을 선언하실 때 new를 사용하여 다음과 같이 합니다.
Stack 이름 = new Stack( );
2. Stack의 메서드
2.1 Push
Push 메서드는 Stack에 데이터를 입력할 때 사용합니다. 블록을 쌓는 것 같이 아래부터 위로 하나씩 쌓아가게 됩니다.
2.2 Pop
Pop 메서드는 Stack의 데이터를 추출할 때 사용합니다. Stack에 쌓여 있는 데이터를 위부터 하나씩 빼내게 됩니다. 데이터를 추출하게 되면 추출한 데이터 바로 밑의 데이터가 맨 위에 있는 데이터가 됩니다.
3. 예제를 통해 Stack 확인
Visual Studio를 여시고 C# 콘솔 애플리케이션을 생성하시면 코드 입력창이 나옵니다. 출력된 코드 입력창에 다음과 같이 입력하세요.
using System;
using System.Collections;
namespace UsingStack
{
class Program
{
static void Main(string[] args)
{
Stack sta = new Stack();
sta.Push(1);
sta.Push(2);
sta.Push(3);
foreach(Object obj in sta)
{
Console.Write(obj);
}
Console.Write('\n');
sta.Pop();
foreach(Object obj in sta)
{
Console.Write(obj);
}
Console.Write('\n');
}
}
}
Stack을 사용하기 위해 using System.Collections;을 입력하였습니다.
Stack sta = new Stack();
=> Sta라는 이름으로 Stack을 선언하였습니다.
sta.Push(1);
sta.Push(2);
sta.Push(3);
=> Sta에 1, 2, 3을 차례대로 데이터로 입력하였습니다.
다음 foreach 문을 통해 sta에 입력된 데이터를 화면에 출력하도록 하였습니다.
sta.Pop();
=> Sta에 가장 마지막에 입력한 3을 추출하였습니다.
다음 foreach 문을 통해 sta에 입력된 데이터를 화면에 출력하도록 하였습니다.
코드를 실행하시면 다음과 같이 화면에 출력됩니다.
321
21
화면 출력 결과 첫 줄을 보시면 Stack의 데이터는 가장 먼저 입력된 데이터가 가장 나중에 출력되는 것을 보실 수 있습니다.
'Programming > C#' 카테고리의 다른 글
C# 데이터 형식 - Object & 박싱, 언박싱 (0) | 2021.10.18 |
---|---|
C# 컬렉션 알아보기 - Hashtable & 메서드 (0) | 2021.10.15 |
C# 컬렉션 알아보기 - Queue & 메서드 (0) | 2021.10.15 |
C# 컬렉션 알아보기 - ArrayList & 메서드 (0) | 2021.10.14 |
C# 가변 배열 선언, 생성 및 초기화 (0) | 2021.10.09 |