-
Stack<T>의 구현C# 예제 공부일기 2020. 7. 14. 18:58
후입선출(Last-in-first-out, LIFO) 형태의 자료를 다룰 때는 스택을 사용한다. 제일 나중에 들어온 자료가 제일 먼저 나가는 자료구조이다. C# 컬렉션에는 Stack<T>가 있어서 스택이 필요하면 제공되는 Stack<T>를 쓰면 된다.
스택에 저장되는 값이 여러가지 일 수 있으므로 제네릭으로 정의한다. Mystack<T> 클래스에는 10개의 자료를 저장하는 arr] 배열과 스택 포인터 top이 필드로 정의된다. 메소드는 생성자 메소드와 Push(), POP() 메소드가 있다.
필드 또는 메소드 내용 T arr[] 스택을 구성하는 배열 int top 스택포인터 MyStack() 생성자 top을 0으로 만든다 Push(T val) 스택에 val을 저장한다. T Pop() 스택에서 값을 하나 꺼낸다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StackPractice { class MyStack<T> { const int maxSize = 10; private T[] arr = new T[maxSize]; private int top; public MyStack() { top = 0; } public void Push(T val) { if (top<maxSize) { arr[top] = val; ++top; } else { Console.WriteLine("Stack Full"); return; } } public T Pop() { if(top>0) { --top; return arr[top]; } else { Console.WriteLine("Stack Empty"); return default; } } } class Program { static void Main(string[] args) { MyStack<int> a = new MyStack<int>(); } } }
기본적인 구조
push
Pop
최종 상태
'C# 예제 공부일기' 카테고리의 다른 글
Queue<T> 의 구현 (0) 2020.07.14 스택을 이용한 프로그램 (0) 2020.07.14 LinkedList 클래스를 활용한 프로그램 (0) 2020.07.13 LinkedList의 구현 (0) 2020.07.13 dynamic 형을 사용하는 일반화 프로그램 (0) 2020.07.13