C# - Stack
2024. 4. 29. 20:36ㆍC#/C# 학습정리
C# 스택에 대해서 학습했다. 코딩테스트 문제를 풀면서 스택 자료구조를 사용할 일이 있었는데 제공하는 메서드가 원래하던 C++과 달라서 공부해보았다. 그러는김에 다시한번 스택에 대해서 알아보았다.
목차
- 스택이란?
- 스택 사용법
스택이란?
스택(Stack)은 자료구조중에 하나로 LIFO(Last-In-First-Out) 후입선출 구조를 가진 자료구조이다. 말 그대로 마지막에 들어온것이 제일 먼저 나가는 자료구조로 바구니에 물품을 담을때 계산을 할때는 제일 위에있는 것 부터 계산하는거라고 생각하면 된다.
C#에서는 이런 스택 자료구조를 제너릭 클래스로 제공하고 있으며 Stack<T> 로 선언하여 사용할 수 있다. 원하는 자료형을 넣어 스택에 넣고(push) 빼는 과정(Pop)을 통해 원하는 동작을 할 수 있다.
스택 사용법
주요 메서드
- Push() : 스택에 데이터를 삽입한다.
- Pop() : 스택의 최상단에 있는 데이터를 꺼내고 값을 반환한다.
- Peek() : 스택의 최상단에 있는 데이터 값을 반환한다.(꺼내진않는다)
- Count() : 스택의 원소 갯수를 반환한다.
- Clear() : 스택의 모든 원소를 제거한다.
static void Main(string[] args)
{
Stack<int> s = new Stack<int>();
s.Push(0);
s.Push(1);
s.Push(4);
s.Push(3);
while (s.Count > 0)
{
Console.WriteLine(s.Pop());
}
}
3 |
4 |
1 |
0 |
Push를하면 해당 표처럼 데이터가 아래서부터 쌓이기 시작한다. 여기서 스택이 비어질때까지 뽑아서 반환하게 된다면. 3, 4, 1, 0 순으로 데이터가 나열될 것이다.
static void Main(string[] args)
{
Stack<int> s = new Stack<int>();
s.Push(0);
s.Push(1);
s.Push(4);
s.Push(3);
Console.WriteLine(s.Peek());
}
peek()메서드를 사용하면 자료구조 최상단에 있는 데이터 3이 나올것이다.
static void Main(string[] args)
{
Stack<int> s = new Stack<int>();
s.Push(0);
s.Push(1);
s.Push(4);
s.Push(3);
s.Clear();
Console.WriteLine(s.Count);
}
Clear() 메서드를 실행해 자료구조에 있는 데이터를 모두 제거하고 Count()메서드를 실행하여 제거가 됐는지 확인해보는 코드이다.
'C# > C# 학습정리' 카테고리의 다른 글
C# - Queue (0) | 2024.05.02 |
---|---|
C# - Event (1) | 2024.04.30 |
C# StreamReader ,StreamWriter, 파일 읽기, 쓰기 (0) | 2024.04.26 |
C# 상속과 다형성 (0) | 2024.04.24 |
C# Ref 와 Out 키워드 (0) | 2024.04.23 |