C# 문법 공부 : Queues

Queues

using System;
using System.Collections;

namespace Queues;
class Program
{
    static void Main(string[] args)
    {
        /*
            Queue.Enqueue() 추가
            Queue.Dequeue() 가장 앞 가져오기 + 제거
            Queue.Peek() 가장 앞 가져져오기
        */
        queEnqueue();
        queArray();
    }

    public static void queEnqueue(){
        Queue myQ = new Queue();
        myQ.Enqueue( "The" );   //큐 추가
        myQ.Enqueue( "quick" );
        myQ.Enqueue( "brown" );
        myQ.Enqueue( "fox" );

        //PrintValues( Q이름 ); 큐 출력 방법
        Console.Write( "1.Queue values:" );
        PrintValues( myQ );                                         //The    quick    brown    fox

        // Queue.Dequeue() 큐에서 가장앞 요소 제거
        Console.WriteLine( "2.(Dequeue)\t   {0}", myQ.Dequeue() );  //The

        Console.Write( "3.Queue values:" );
        PrintValues( myQ );                                         //quick    brown    fox

        // Queue.Dequeue() 큐에서 가장앞 요소 제거
        Console.WriteLine( "4.(Dequeue)\t   {0}", myQ.Dequeue() );  //quick

        Console.Write( "5.Queue values:" );
        PrintValues( myQ );                                         //brown    fox

        // Queue.Peek() 첫 번째 요소를 보지만 제거하지는 않습니다.
        Console.WriteLine( "6.(Peek)\t   {0}", myQ.Peek() );        //brown

        Console.Write( "7.Queue values:" );
        PrintValues( myQ );                                         //brown    fox
        Console.WriteLine( "=======================================" );
    }

    public static void PrintValues( IEnumerable myCollection )  {
        foreach ( Object obj in myCollection )
            Console.Write( "    {0}", obj );
        Console.WriteLine();
    }

    public static void queArray(){

        Array myArray = Array.CreateInstance( typeof(string), 15 ); //1차원 대상 배열을 만들고 초기화합니다.
        myArray.SetValue( "The", 0 ); 
        myArray.SetValue( "quick", 1 );
        myArray.SetValue( "brown", 2 );
        myArray.SetValue( "fox", 3 );
        myArray.SetValue( "jumps", 4 );
        myArray.SetValue( "over", 5 );
        myArray.SetValue( "the", 6 );
        myArray.SetValue( "lazy", 7 );
        myArray.SetValue( "dog", 8 );
        PrintValues( myArray, ' ' );    //myArray 출력

        Queue myQueue = new Queue();
        myQueue.Enqueue( "<three>" );
        myQueue.Enqueue( "<napping>" );
        myQueue.Enqueue( "<cats>" );
        myQueue.Enqueue( "<in>" );
        myQueue.Enqueue( "<the>" );
        myQueue.Enqueue( "<barn>" );

        myQueue.CopyTo( myArray, 6 );   //myArray 6 index 부터 myQueue 전체를 복사하여 넣는다.
        PrintValues( myArray, ' ' );    //myArray 출력

        Object[] myObjectArray = myQueue.ToArray(); //복사 myQueue -> myObjectArray
        PrintValues( myObjectArray, ' ' );          //myStandardArray 출력
    }

    //큐 출력
    public static void PrintValues( Array myArr, char mySeparator )  {
        foreach ( Object myObj in myArr )  {
            Console.Write( "{0}{1}", mySeparator, myObj );
        }
        Console.WriteLine();
    }

}

 

 

'C#' 카테고리의 다른 글

C# 문법 공부 : WindowsForms  (0) 2024.04.29
C# 문법 공부 : Timer  (0) 2024.04.29
C# 문법 공부 : Soket  (0) 2024.04.29
C# 문법 공부 : HttpWebRe  (0) 2024.04.29
C# 문법 공부 : Gif Image  (0) 2024.04.29