반응형
후입선출의 형태의 자료를 다룰때는 스택을 사용합니다.
제일 나중에 들어온 자료가 제일 먼저 나가는 자료구조입니다.
.NET 컬렉션에는 STACK<T>강 있어 사용하면됩니다.
하지만 원리와 구조에 대해 알아보기 위해 직접 코딩해보겠습니다.
namespace Stackimplementation
{
class Program
{
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)
{
val = arr[top];
top++;
}
else
{
Console.WriteLine("Stack Full");
return;
}
}
public T Pop()
{
if (top>0)
{
--top;
return arr[top];
}
else
{
Console.WriteLine("Stack Empty");
return default;
}
}
}
Push 와 Pop 메서드를 만들어 준다 . 선입 선출의 원칙으로
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Stackimplementation
{
class Program
{
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;
}
}
}
static void Main(string[] args)
{
MyStack<int> stack = new MyStack<int>();
Random random = new Random();
for (int i = 0; i < 10; i++)
{
int val = random.Next(100);
stack.Push(val);
Console.Write("Push("+val+")");
}
Console.WriteLine();
for (int i = 0; i < 10; i++)
{
Console.Write("Pop()="+stack.Pop()+",");
}
}
}
}
for문을 사용하여 100 안으로 랜덤값을 추출해 본다
반응형
'C#' 카테고리의 다른 글
C# 개발 - 패킷 단위 자르는 방법 공부해서 Wireshark · Go Deep 유사품 만들기 (0) | 2023.03.02 |
---|---|
C# 개발 - ADO.NET으로 DB(MSSQL) 연결하기 / DB프로시저 개념 /Excel 참조하는 방법 (0) | 2023.03.02 |
C# 문법- 클래스 생성자 this 사용법 공부 (0) | 2023.03.02 |
C# 문법 -Queue<T>의 구현 (0) | 2023.03.02 |
C# 개발- 배열 /반복문/DATETIME으로 WINFORM UI 만들어 보기 (0) | 2023.03.02 |
C# 문법 -LinkedList의 구현 (0) | 2023.03.02 |