728x90
반응형

스택(Stack) 완전 이해하기

이전 글에서는 리스트(List)에 대해 알아봤습니다.
이번에는 후입선출(LIFO) 구조를 가지는 스택(Stack) 에 대해 자세히 정리해봅니다.


1. 스택이란?

스택은 나중에 넣은 데이터가 먼저 나오는 자료구조입니다. (LIFO: Last-In, First-Out)

  • 마지막에 추가한 데이터가 가장 먼저 꺼내짐
  • 주로 함수 호출, 실행 취소(Undo) 기능 등에 사용

2. 스택의 특징

항목 설명

삽입(push) 항상 맨 위에 추가
삭제(pop) 항상 맨 위에서 제거
조회(peek) 맨 위 요소만 확인 (제거는 안 함)
크기 제한 있을 수도 있고 없을 수도 있음

3. 스택 사용 예시 (C# 기준)

 Stack 선언과 초기화

using System.Collections.Generic;

// 빈 스택 생성
Stack<string> stack = new Stack<string>();

 요소 추가 (Push)

stack.Push("첫 번째");
stack.Push("두 번째");
stack.Push("세 번째");

 요소 제거 (Pop)

string top = stack.Pop();
Console.WriteLine(top); // "세 번째" 출력

 맨 위 요소 확인 (Peek)

string currentTop = stack.Peek();
Console.WriteLine(currentTop); // "두 번째" 출력 (삭제되지 않음)

 스택 순회

foreach (var item in stack)
{
    Console.WriteLine(item);
}

4. 실생활 예시로 이해하기

  • 스택 = 접시 쌓기
    • 마지막에 올린 접시를 먼저 꺼내야 함
  • 스택 = 웹 브라우저 뒤로 가기
    • 마지막에 방문한 페이지부터 뒤로 이동

5. 스택의 활용 사례

사용 예시 설명

함수 호출 스택 함수 호출 시 복귀 주소 저장
실행 취소(Undo) 기능 가장 최근 작업부터 되돌리기
괄호 짝 맞추기 여는 괄호를 스택에 쌓아 닫는 괄호와 비교

이번 글에서는 스택(Stack) 의 개념, 특징, C# 코드 사용법을 정리했습니다.

  • 나중에 넣은 데이터가 먼저 나오는 구조 (LIFO)
  • 함수 호출 관리, 실행 취소 기능 등에서 매우 많이 사용

 

728x90
반응형

'개발이야기' 카테고리의 다른 글

자료구조 시리즈 6편  (2) 2025.04.21
자료구조 시리즈 5편  (0) 2025.04.21
자료구조 시리즈 3편  (0) 2025.04.21
자료구조 시리즈 2편  (0) 2025.04.20
자료구조 시리즈 1편  (0) 2025.04.20

+ Recent posts