본문 바로가기

Programming/C#

C# 컬렉션 알아보기 - Stack & 메서드

반응형

이전 글에서 Queue에 대해 알아보았습니다. 이번에는 C# 컬렉션 중 Stack에 대해 알아보겠습니다. Stack은 Queue와 같이 데이터를 저장할 수 있는 컬렉션이지만 입출력되는 방식은 Queue와 전혀 다릅니다.

 

C# 컬렉션 알아보기 - Queue & 메서드

 

C# 컬렉션 알아보기 - Queue & 메서드

이전 글에서 C# 컬렉션으로 ArrayList에 대해 알아보았습니다. 이번에는 Queue에 대해 알아보겠습니다. C#은 객체 지향 언어로서 모든 요소가 객체로 구성됩니다. 객체는 이벤트, 속성, 메서드를 가지

mr-johndoe.tistory.com

 

 

 

 

1. Stack

 Stack은 데이터 입출력 방식이 Queue와는 다릅니다. Queue는 데이터가 입력되면 가장 마지막 데이터가 되며 데이터를 출력하면 제일 첫 번째 데이터가 추출됩니다. 하지만, Stack은 데이터가 입력되면 제일 마지막에 입력되며, 데이터를 출력하면 제일 마지막 데이터가 추출됩니다.

 

이는 블록쌓기로 블록을 쌓으면 제일 처음에 쌓는 블록은 가장 밑에 쌓이며 그 위로 하나씩 쌓이는 것과 같습니다. 그리고 블록을 뺄 때 제일 위에 있는 가장 나중에 쌓았던 블록을 빼내는 것을 상상하시면 이해가 쉬우실 것입니다.

 

Stack을 선언하실 때 new를 사용하여 다음과 같이 합니다.

 

  Stack 이름 = new Stack( );

 

2. Stack의 메서드

 2.1 Push

     Push 메서드는 Stack에 데이터를 입력할 때 사용합니다. 블록을 쌓는 것 같이 아래부터 위로 하나씩 쌓아가게 됩니다.

 

 2.2 Pop

     Pop 메서드는 Stack의 데이터를 추출할 때 사용합니다. Stack에 쌓여 있는 데이터를 위부터 하나씩 빼내게 됩니다. 데이터를 추출하게 되면 추출한 데이터 바로 밑의 데이터가 맨 위에 있는 데이터가 됩니다.

 

 

 

3. 예제를 통해 Stack 확인

Visual Studio를 여시고 C# 콘솔 애플리케이션을 생성하시면 코드 입력창이 나옵니다. 출력된 코드 입력창에 다음과 같이 입력하세요.

 

   using System;

   using System.Collections;

 

   namespace UsingStack

   {

 

     class Program

     {

 

        static void Main(string[] args)

        {

          Stack sta = new Stack();

 

          sta.Push(1);

          sta.Push(2);

          sta.Push(3);

 

          foreach(Object obj in sta)

          {

              Console.Write(obj);

           }

          Console.Write('\n');

 

          sta.Pop();

 

          foreach(Object obj in sta)

          {

             Console.Write(obj);

          }

          Console.Write('\n');

        }

 

     }

 

   }

 

Stack을 사용하기 위해 using System.Collections;을 입력하였습니다.

 

Stack sta = new Stack();

     => Sta라는 이름으로 Stack을 선언하였습니다.

 

sta.Push(1);

sta.Push(2);

sta.Push(3);

     => Sta에 1, 2, 3을 차례대로 데이터로 입력하였습니다.

          다음 foreach 문을 통해 sta에 입력된 데이터를 화면에 출력하도록 하였습니다.

 

sta.Pop();

     => Sta에 가장 마지막에 입력한 3을 추출하였습니다.

          다음 foreach 문을 통해 sta에 입력된 데이터를 화면에 출력하도록 하였습니다.

 

코드를 실행하시면 다음과 같이 화면에 출력됩니다.

 

321

21

 

화면 출력 결과 첫 줄을 보시면 Stack의 데이터는 가장 먼저 입력된 데이터가 가장 나중에 출력되는 것을 보실 수 있습니다.

 

반응형