C#
C# 문법 -Queue<T>의 구현
이준호
2023. 3. 2. 17:05
반응형
선입 선출 형태의 자료를 다룰 때는 큐를 사용합니다. 선착순으로 제일 먼저 들어온 자료가 제일 먼저 나가는 자료 구조입니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
class Node<T>
{
internal T value;
internal Node<T> next;
public Node(T value)
{
this.value = value;
this.next = null;
}
}
class MyQueue<T>
{
internal Node<T> first = null;
internal Node<T> last = null;
internal void EnQueue(Node<T> node )
{
if (last == null)
{
first = last = node;
}
else
{
last.next = node;
last = node;
}
}
internal T DeQueue()
{
if (first == null)
{
Console.WriteLine("Queue is Empty");
return default;
}
else
{
T value = first.value;
first = first.next;
return value;
}
}
internal void Print()
{
for (Node<T> t = first; t != null; t= t.next)
{
Console.Write(t.value + "->");
}
Console.WriteLine();
}
}
static void Main(string[] args)
{
Random random = new Random();
MyQueue<float> queue = new MyQueue<float>();
for (int i = 0; i < 5; i++)
{
queue.EnQueue(new Node<float>(random.Next(100) / 100.0f));
}
queue.Print();
for (int i = 0; i < 5; i++)
{
Console.WriteLine("DeQueue :"+ queue.DeQueue());
}
queue.Print();
}
}
}
반응형