C#

2024.03.12 - 스택(Stack)

강병곤 2024. 3. 12. 17:15
  • 자료구조(Data Structure)

자료구조란 데이터를 표현하고 저장하는 방법을 말한다.

 

  • 자료구조의 스택(Stack)

스택은 나중에 추가된 데이터가 먼저 출력되는 후입선출(Last-In First-Out : LIFO) 자료구조이다.

스택을 상자나 프링글스 통이라고 생각하면 좋다.

 

스택에 데이터를 넣는 과정
스택에서 데이터를 출력하는 과정

 

 

스택에 데이터를 넣는 과정을 push, 스택에서 데이터를 출력하는 과정을 pop이라고 한다.

스택의 맨 뒤에 저장된 데이터를 top이라고 한다.

push, pop, top

 

  • C#에서의 스택

C#에서는 일반화된 Stack<T> 클래스를 통해 스택 자료구조를 지원한다.

 

- 스택을 선언하는 방법

Stack<자료형> 스택_이름 = new Stack<자료형>();

 

int형 데이터를 담는 스택 자료구조 myStack

 

 

 

- 스택에 데이터를 넣고(Push) / 빼보자(Pop)

스택_이름.Push(넣을_데이터);    //스택에 데이터를 담는다.
스택_이름.Pop();                          //스택의 top에 위치한 데이터를 반환하고 스택에서 제거한다.

 

 

데이터가 10, 20, 30 순서로 쌓여서 가장 나중에 들어온 30부터 데이터가 빠져나간다.

 

 

※주의 사항

 

스택에 데이터가 없을 때 Pop하려고하면 예외가 발생한다. 

 

 

 

- 스택에 담은 데이터 개수를 세기(Count)

스택_이름.Count     //스택에 담은 데이터 개수를 반환한다.

 

 

 

 

- 스택의 top에 위치한 데이터 보기(Peek)

스택_이름.Peek()        //스택의 top에 위치한 데이터를 반환한다. Pop과 달리 데이터를 제거하지 않는다.