푸시 및 팝 예제가 포함된 C# 스택

C#의 스택이란 무엇입니까?

스택은 LIFO(후입선출) 개념을 나타내는 특수 사례 모음입니다. 먼저 LIFO를 이해하기 위해 예를 들어보겠습니다. 각 책이 서로 쌓여 있는 책 더미를 상상해 보십시오.

책의 경우 후입선출의 개념은 책 더미에서 맨 위에 있는 책만 제거할 수 있음을 의미합니다. 그 사이에 책을 빼는 것은 불가능합니다. 그렇게 하면 책 더미의 세팅을 방해할 수 있기 때문입니다.

따라서 C#, 스택도 같은 방식으로 작동합니다. 요소는 스택에 추가됩니다. 요소는 서로 위에 하나씩 추가됩니다. 요소를 스택에 추가하는 프로세스를 push 연산이라고 합니다. 스택에서 요소를 제거하려면 스택의 가장 위에 있는 요소를 제거할 수도 있습니다. 이 연산을 pop이라고 합니다.

Stack 컬렉션에서 사용 가능한 작업을 더 자세히 살펴보겠습니다.

스택 선언

스택은 스택 데이터 유형을 사용하여 생성됩니다. 스택의 객체를 생성할 때 키워드 “new”가 사용됩니다. 그런 다음 개체는 변수 st에 할당됩니다.

Stack st = new Stack()

스택에 요소 추가

push 메소드는 스택에 요소를 추가하는 데 사용됩니다. 문의 일반적인 구문은 다음과 같습니다.

Stack.push(element)

스택에서 요소 제거

pop 메서드는 스택에서 요소를 제거하는 데 사용됩니다. pop 연산은 스택의 최상위 요소를 반환합니다. 명령문의 일반 구문은 아래와 같습니다.

 Stack.pop()

카운트

이 속성은 스택의 항목 수를 가져오는 데 사용됩니다. 다음은 이 명령문의 일반적인 구문입니다.

Stack.Count

포함

이 메서드는 스택에 요소가 있는지 확인하는 데 사용됩니다. 다음은 이 명령문의 일반적인 구문입니다. 이 문은 요소가 존재하면 true를 반환하고, 그렇지 않으면 false 값을 반환합니다.

Stack.Contains(element)

이제 이것이 코드 수준에서 작동하는 것을 살펴보겠습니다. 아래에 언급된 코드는 모두 우리의 코드에 작성됩니다. 콘솔 응용. 코드는 Program.cs 파일에 기록됩니다.

아래 프로그램에서는 위에서 언급한 방법을 어떻게 사용할 수 있는지 알아보기 위해 코드를 작성해 보겠습니다.

예제 1: Stack.Push() 메서드

이 예에서는 다음을 볼 수 있습니다.

  • 스택이 생성되는 방법.
  • 스택의 요소를 표시하고 Count 및 Contain 메서드를 사용하는 방법.

C#의 스택

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Stack st = new Stack();
   st.Push(1);
   st.Push(2);
   st.Push(3);

   foreach (Object obj in st)
   {
    Console.WriteLine(obj);
   }
    Console.WriteLine(); Console.WriteLine();
    Console.WriteLine("The number of elements in the stack " +st.Count);
    Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3));
    Console.ReadKey();
  }
 }
}

코드 설명:-

  1. 첫 번째 단계는 스택을 선언하는 데 사용됩니다. 여기서는 스택의 요소를 보유하는 변수로 "st"를 선언합니다.
  2. 다음으로 스택에 3개의 요소를 추가합니다. 각 요소는 Push 메서드를 통해 추가됩니다.
  3. 이제 스택 요소는 다음과 같은 인덱스 위치를 통해 액세스할 수 없으므로 배열 목록, 스택의 요소를 표시하려면 다른 접근 방식을 사용해야 합니다. 객체(obj)는 스택의 각 요소를 보유하기 위해 선언된 임시 변수입니다. 그런 다음 foreach 문을 사용하여 스택의 각 요소를 살펴봅니다. 각 스택 요소에 대해 값은 obj 변수에 할당됩니다. 그런 다음 Console.Writeline 명령을 사용하여 콘솔에 값을 표시합니다.
  4. 우리는 Count 속성을 사용하고 있습니다(일수) 스택에 있는 항목 수를 가져옵니다. 이 속성은 숫자를 반환합니다. 그런 다음 이 값을 콘솔에 표시합니다.
  5. 그런 다음 Contains 메서드를 사용하여 3의 값이 스택에 있는지 확인합니다. 그러면 true 또는 false 값이 반환됩니다. 그런 다음 이 반환 값을 콘솔에 표시합니다.

위 코드를 올바르게 입력하여 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.

출력:

C#의 스택

출력에서 스택의 요소가 표시되는 것을 볼 수 있습니다. 또한 True 값이 표시되어 3의 값이 스택에 정의되어 있음을 알 수 있습니다.

주의 사항: 스택에 푸시된 마지막 요소가 먼저 표시되는 것을 확인했습니다. 이는 스택의 최상위 요소입니다. 스택 요소의 개수도 출력에 표시됩니다.

예제 2: Stack.Pop() 메서드

이제 "제거" 기능을 살펴보겠습니다. 스택의 최상위 요소를 제거하는 데 필요한 코드를 살펴보겠습니다.

C#의 스택

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Stack st = new Stack();
   st.Push(1);
   st.Push(2);
   st.Push(3);
   
   st.Pop();

   foreach (Object obj in st)
   {
    Console.WriteLine(obj);
   }
    Console.ReadKey();
  }
 }
}

코드 설명:-

  1. 여기서는 스택에서 요소를 제거하는 데 사용되는 pop 메서드를 실행합니다.

위의 코드를 올바르게 입력하여 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.

출력:

C#의 스택

요소 3이 스택에서 제거된 것을 볼 수 있습니다.

요약

  • 스택은 후입선출 개념을 기반으로 합니다. 스택에 요소를 추가하는 작업을 푸시 작업이라고 합니다. 스택에서 요소를 제거하는 작업을 팝 작업이라고 합니다.