C# - Stack

2024. 4. 29. 20:36C#/C# 학습정리

C# 스택에 대해서 학습했다. 코딩테스트 문제를 풀면서 스택 자료구조를 사용할 일이 있었는데 제공하는 메서드가 원래하던 C++과 달라서 공부해보았다. 그러는김에 다시한번 스택에 대해서 알아보았다.

 

목차

  1. 스택이란?
  2. 스택 사용법

     



    스택이란?

    스택(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