-
스택을 이용한 프로그램C# 예제 공부일기 2020. 7. 14. 19:04
10개의 랜덤 숫자를 스택에 넣고 다시 꺼내어 출력하는 프로그램을 작성한다. 스택에 값을 저장할 때는 push(), 꺼낼 때는 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> stack = new MyStack<int>(); //T의 제네릭에 int 사용 Random r = new Random(); for (int i = 0; i < 10; i++) { int val = r.Next(100); stack.Push(val); //1부터 100까지 랜덤한 수 10개 푸쉬 Console.WriteLine("Push( " + val + " )"); } Console.WriteLine(); for (int i = 0; i < 10; i++) { Console.Write("Pop() = " + stack.Pop() + ","); //스택에서 top에 있는 것 하나씩꺼낸다. } } } }
32
2
클래스를 만들때 애초에 스택의 최대 갯수를 10개로 지정한 arr배열에 가장나중에 들어온 데이터의 인덱스가 top에 저장된다. push를 한다면 top이 마지막에 push한 데이터의 인덱스를 가지고 있다. Pop한다면 top의 데이터를 내보내고 그 밑의 배열인덱스를 top으로 가진다.
가장 나중에 들어온 데이터인 68이 가장먼저나가는 것을 볼 수 있다.
'C# 예제 공부일기' 카테고리의 다른 글
큐를 이용한 프로그램 (0) 2020.07.14 Queue<T> 의 구현 (0) 2020.07.14 Stack<T>의 구현 (0) 2020.07.14 LinkedList 클래스를 활용한 프로그램 (0) 2020.07.13 LinkedList의 구현 (0) 2020.07.13