산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

푸시 및 팝 예제가 있는 C# 스택

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

스택은 LIFO(후입선출) 개념을 나타내는 특수한 경우의 컬렉션입니다. 먼저 LIFO를 이해하기 위해 예를 들어보겠습니다. 각 책이 서로 겹쳐져 있는 책 더미를 상상해 보십시오.

책의 경우 후입선출이라는 개념은 책 더미에서 맨 위에 있는 책만 제거할 수 있음을 의미합니다. 그 사이에서 책을 제거하는 것은 불가능합니다. 그러면 스택 설정이 방해될 수 있기 때문입니다.

따라서 C#에서 스택도 같은 방식으로 작동합니다. 요소가 스택에 추가되고 서로의 상단에 하나씩 추가됩니다. 스택에 요소를 추가하는 프로세스를 푸시 작업이라고 합니다. 스택에서 요소를 제거하려면 스택의 맨 위에 있는 요소를 제거할 수도 있습니다. 이 작업을 팝이라고 합니다.

Stack 컬렉션에 사용할 수 있는 작업을 더 자세히 살펴보겠습니다.

스택 선언

스택 데이터 유형의 도움으로 스택이 생성됩니다. "new" 키워드는 스택의 객체를 생성하는 데 사용됩니다. 그런 다음 개체가 변수 st에 할당됩니다.

Stack st = new Stack()

스택에 요소 추가

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

Stack.push(element)

스택에서 요소 제거

pop 메소드는 스택에서 요소를 제거하는 데 사용됩니다. 팝 작업은 스택의 최상위 요소를 반환합니다. 명령문의 일반 구문은 다음과 같습니다.

 Stack.pop()

카운트

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

Stack.Count

포함

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

Stack.Contains(element)

이제 이것이 코드 수준에서 작동하는 것을 봅시다. 아래에 언급된 모든 코드는 콘솔 애플리케이션에 작성됩니다. 코드는 Program.cs 파일에 작성됩니다.

아래 프로그램에서는 위에서 언급한 방법을 사용하는 방법을 알아보기 위해 코드를 작성합니다.

예시 1:Stack.Push() 메소드

이 예에서는

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. 이제 배열 목록과 같이 인덱스 위치를 통해 스택 요소에 액세스할 수 없으므로 스택 요소를 표시하려면 다른 접근 방식을 사용해야 합니다. Object(obj)는 스택의 각 요소를 보유하기 위해 선언된 임시 변수입니다. 그런 다음 foreach 문을 사용하여 스택의 각 요소를 살펴봅니다. 각 스택 요소에 대해 값이 obj 변수에 할당됩니다. 그런 다음 Console.Writeline 명령을 사용하여 콘솔에 값을 표시합니다.
  4. Count 속성(st.count ) 스택의 항목 수를 가져옵니다. 이 속성은 숫자를 반환합니다. 그런 다음 이 값을 콘솔에 표시합니다.
  5. 그런 다음 Contains 메서드를 사용하여 스택에 값 3이 있는지 확인합니다. true 또는 false 값을 반환합니다. 그런 다음 이 반환 값을 콘솔에 표시합니다.

위의 코드를 제대로 입력하고 프로그램을 실행하면 다음과 같은 출력이 출력됩니다.

출력:

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

참고 :스택에 푸시된 마지막 요소가 먼저 표시됩니다. 이것은 스택의 최상위 요소입니다. 스택 요소의 개수도 출력에 표시됩니다.

예시 2:Stack.Pop() 메소드

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

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 메서드를 실행합니다.

위의 코드를 제대로 입력하고 프로그램을 실행하면 다음과 같은 출력이 출력됩니다.

출력:

요소 3이 스택에서 제거되었음을 알 수 있습니다.

요약


C 언어

  1. C# 식, 문 및 블록(예제 포함)
  2. C++ do… while 루프 예제
  3. 예제가 있는 C++ 포인터
  4. C++ Char 데이터 유형(예제 포함)
  5. 예제를 사용한 C++ 연산자 오버로딩
  6. 프로그램 예제가 있는 C++ 함수
  7. 예제가 있는 C# 컬렉션 자습서
  8. 예제가 있는 Python 문자열 count()
  9. 예제가 있는 Python round() 함수
  10. 예제가 있는 Python map() 함수