[C# 컬렉션클래스, 큐, Queue] Queue란?, 큐 예제
꽁스짱
C#
0
1061
2021.02.15 22:55
[C# 컬렉션클래스, 큐, Queue] Queue란?, 큐 예제
- 큐는 FIFO(First In First Out) 형태의 자료구조를 구현핚 클래스로 메시지를 받은 순서대로 저장하는 데 유용하다.
- System.Collections.Queue 클래스는 큐를 순홖 배열로 구현했는데 Queue 에 저장되는 개체들은 한쪽 끝에서 삽입되고
- 다른 쪽 끝에서 제거된다. 배열이나 리스트가 데이터에 자유롭게 접귺하는 반면 큐는 입력은 오직 뒤(rear),
- 출력은 오직 앞(front)에서맊 읷어난다. 널 값을 허용하고 중복을 허용하는 자료구조 이다.
using System;
using System.Collections;
public class SamplesQueue
{
public static void Main()
{
// Creates and initializes a new Queue.
//큐에 값을 넣을 때는 Enqueue 메소드 이용
Queue myQ = new Queue();
myQ.Enqueue("Hello");
myQ.Enqueue("World");
myQ.Enqueue("!");
//Front쪽의 출력되기 직전의 데이터를리턴한다,
//여기서는 "Hello", 값만 리턴하며 큐에 값은 여전히 남아있다.
Console.WriteLine(myQ.Peek());
//Queue의 내용을 배열로 변환 후 출력
object[] strQueue = myQ.ToArray();
Console.WriteLine("--------------------------------");
PrintValues(strQueue);
Console.WriteLine("--------------------------------");
// Displays the properties and values of the Queue.
Console.WriteLine("myQ");
Console.WriteLine("\tCount: {0}", myQ.Count);
Console.Write("\tValues:"); PrintValues(myQ);
Console.WriteLine(myQ.Contains("Hello"));
//Dequeue : 큐에 있는 값을 제거하며 제거된 값을 리턴
Console.WriteLine("--------------------------------");
Console.WriteLine(myQ.Dequeue());
Console.WriteLine(myQ.Dequeue());
Console.WriteLine(myQ.Dequeue());
Console.WriteLine(myQ.Contains("Hello"));
}
public static void PrintValues(IEnumerable myCollection)
{
foreach (Object obj in myCollection) Console.Write(" {0}", obj);
Console.WriteLine();
}
}
[결과]
Hello
--------------------------------
Hello World !
--------------------------------
myQ
Count: 3
Values: Hello World !
True
--------------------------------
Hello
World
!
False