• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • C# 프로그래밍의 기초: 큐(Queue)
    2024년 08월 24일
    • 유니얼
    • 작성자
    • 2024.08.24.:18
    728x90

    큐는 선입선출(First-In-First-Out, FIFO) 방식으로 데이터를 처리하는 핵심 자료구조입니다. 이는 스택의 후입선출(LIFO) 방식과 대조되며, 데이터가 들어온 순서대로 처리되어야 할 때 주로 사용됩니다. 이 블로그 글에서는 큐의 기본적인 개념, 주요 특징 및 메서드, 그리고 C#에서 큐를 사용하는 방법을 살펴보겠습니다.

    큐의 기본 개념

    큐는 일상 생활에서 흔히 볼 수 있는 대기열과 유사합니다. 예를 들어, 은행 창구나 식당에서 번호표를 받고 순서대로 서비스를 기다리는 과정이 큐의 작동 방식을 잘 나타냅니다. 프로그래밍에서 큐는 데이터 처리 순서를 관리하기 위해 사용되며, 프린터 작업 대기열, 너비 우선 탐색(BFS) 알고리즘, 이벤트 처리 시스템 등 다양한 분야에서 활용됩니다.

    큐의 주요 특징

    1. 선입선출(FIFO): 큐에 먼저 들어간 데이터가 먼저 나오는 구조로, 이는 데이터의 처리 순서를 명확하게 정의할 수 있습니다.
    2. 동적 크기 조정: Queue<T> 클래스는 데이터의 추가 및 제거에 따라 큐의 크기가 동적으로 조정됩니다.
    3. 단일 접근점: 큐의 요소는 한쪽 끝에서만 추가되고, 반대쪽에서 제거됩니다. 이를 통해 데이터의 순서가 유지됩니다.

    C#에서의 큐 사용

    C#에서 큐는 System.Collections.Generic.Queue<T> 클래스를 통해 구현됩니다. 이 클래스는 제네릭을 지원하여 다양한 타입의 데이터를 저장할 수 있습니다.

     

    주요 메서드 및 속성:

    • Enqueue(T item): 큐의 뒤쪽에 요소를 추가합니다.
    • Dequeue(): 큐의 앞쪽에서 요소를 제거하고 그 값을 반환합니다.
    • Peek(): 큐의 맨 앞에 있는 요소를 조회하되 제거하지는 않습니다.
    • Count: 큐에 저장된 요소의 수를 반환합니다.
    • Clear(): 큐의 모든 요소를 제거합니다.

    전체예제 코드

    using System;
    using System.Collections.Generic;
    
    namespace CSharp_ProgramingStudy.Chapter6_DataStructure
    {
        public class Class6
        {
            public void Run()
            {
                Queue<int> queue = new Queue<int>();
    
                queue.Enqueue(1);
                queue.Enqueue(2);
                queue.Enqueue(3);
    
                int firstItem = queue.Dequeue();
                Console.WriteLine($"Dequeued item: {firstItem}"); // 출력: 1
    
                int nextItem = queue.Peek();
                Console.WriteLine($"Next item: {nextItem}"); // 출력: 2
    
                Console.WriteLine("Remaining items in queue:");
                foreach (int item in queue)
                {
                    Console.WriteLine(item); // 출력: 2, 3
                }
    
                Console.WriteLine($"Queue count: {queue.Count}"); // 출력: 2
    
                queue.Clear();
                Console.WriteLine($"Queue count after clearing: {queue.Count}"); // 출력: 0
            }
        }
    }
    

    결론

    큐는 선입선출의 원칙을 따르는 자료구조로, 데이터의 처리 순서가 중요한 많은 시나리오에서 중요한 역할을 합니다. C#의 Queue<T> 클래스는 큐를 효과적으로 구현하며, 간단한 API를 통해 큐의 동작을 쉽게 제어할 수 있습니다. 올바른 시나리오에서 큐를 활용하면, 데이터 처리 과정을 효율적이고 명확하게 관리할 수 있습니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바