상세 컨텐츠

본문 제목

Stack

C#

by 메타 스토리 2023. 9. 5. 09:36

본문

스택(Stack)은 컴퓨터 과학 및 프로그래밍에서 사용되는 데이터 구조 중 하나로, 데이터의 후입선출(LIFO, Last-In-First-Out) 원칙을 따릅니다. 스택은 간단히 말해 "접시 쌓기"와 비슷한 동작을 합니다. 가장 최근에 쌓인 접시가 가장 먼저 꺼내지는 것처럼, 스택에 저장된 가장 최근에 추가된 요소가 가장 먼저 제거됩니다.

스택은 다음과 같은 주요 연산을 지원합니다:

  1. Push: 스택에 요소를 추가하는 연산입니다. 새로운 요소는 스택의 맨 위에 추가됩니다.
  2. Pop: 스택에서 요소를 제거하고 반환하는 연산입니다. 스택의 맨 위 요소가 제거됩니다.
  3. Peek: 스택에서 요소를 제거하지 않고 반환하는 연산입니다. 스택의 맨 위 요소를 확인합니다.

스택은 여러 상황에서 유용하게 사용됩니다. 예를 들어, 함수 호출을 관리하는 데 사용되는 함수 호출 스택, 웹 브라우저의 뒤로 가기 버튼 동작, 계산기의 수식 평가, 미로 탐색 등 다양한 알고리즘과 응용 프로그램에서 스택이 활용됩니다.

C#에서 스택을 사용하려면 System.Collections.Generic 네임스페이스의 Stack<T> 클래스를 활용하면 됩니다. T는 저장하려는 요소의 데이터 유형을 나타냅니다.

 

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 스택 생성
        Stack<string> stack = new Stack<string>();

        // 스택에 요소 추가
        stack.Push("첫 번째 항목");
        stack.Push("두 번째 항목");
        stack.Push("세 번째 항목");

        // 스택의 요소 출력 (후입선출 순서로 출력됨)
        Console.WriteLine("스택의 요소:");
        foreach (var item in stack)
        {
            Console.WriteLine(item);
        }

        // 스택에서 요소 제거 및 반환
        string poppedItem = stack.Pop();
        Console.WriteLine("Pop된 항목: " + poppedItem);

        // 스택에서 요소 확인 (제거하지 않고 반환)
        string peekedItem = stack.Peek();
        Console.WriteLine("Peek된 항목: " + peekedItem);

        // 스택에 남은 요소 수
        int count = stack.Count;
        Console.WriteLine("스택의 요소 수: " + count);
    }
}

 

스택의 요소:
세 번째 항목
두 번째 항목
첫 번째 항목
Pop된 항목: 세 번째 항목
Peek된 항목: 두 번째 항목
스택의 요소 수: 2

 

 

'C#' 카테고리의 다른 글

foreach를 사용할 수 있는 일반화 클래스  (0) 2023.09.05
Dictionary  (0) 2023.09.05
Queue  (0) 2023.09.05
List  (0) 2023.09.05
string.Format  (0) 2023.09.05

관련글 더보기