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 |