반응형
선입 선출 형태의 자료를 다룰 때는 큐를 사용합니다. 선착순으로 제일 먼저 들어온 자료가 제일 먼저 나가는 자료 구조입니다.
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();
}
}
}
반응형
'C#' 카테고리의 다른 글
C# 개발 - ADO.NET으로 DB(MSSQL) 연결하기 / DB프로시저 개념 /Excel 참조하는 방법 (0) | 2023.03.02 |
---|---|
C# 문법- 클래스 생성자 this 사용법 공부 (0) | 2023.03.02 |
C# 문법 -STACK<T>구현 (0) | 2023.03.02 |
C# 개발- 배열 /반복문/DATETIME으로 WINFORM UI 만들어 보기 (0) | 2023.03.02 |
C# 문법 -LinkedList의 구현 (0) | 2023.03.02 |
C# 문법 - Int.TryParse(string s , out int result) 사용해보기 (0) | 2023.03.02 |