단일 연결 리스트를 이용한 FIFO 구현

  • 20 minutes to read

이 글에서는 여러 프로그래밍 언어를 사용하여 단일 연결 리스트(Singly Linked List)를 이용한 FIFO(First In First Out) 구현 방법을 소개합니다. 단일 연결 리스트는 배열에 비해 데이터의 삽입과 삭제가 용이한 데이터 구조로, 각 노드가 다음 노드를 가리키는 포인터를 포함합니다. 이를 통해 간단한 FIFO 구현을 살펴볼 것이며, 사용자로부터 이름과 전화번호를 입력 받아 리스트에 저장하고, 리스트를 순회하며 입력된 데이터를 출력하는 과정을 다룰 것입니다. 이 글에서는 C, C++, C#, Java, Python, JavaScript, TypeScript, Go, Rust 등 다양한 프로그래밍 언어로 예제를 제공하여, 언어별 차이를 이해하고 해당 언어의 구현 방식을 학습할 수 있습니다.

  1. 단일 연결 리스트를 이용한 FIFO 구현 (C# 버전)

이 코드 예제에서는 C# 프로그래밍 언어를 사용하여 단일 연결 리스트(Singly Linked List)를 이용한 FIFO(First In First Out) 구현 방법을 살펴보겠습니다.

  1. 구조체와 메소드 정의

먼저, 노드를 구성할 클래스인 Node를 정의합니다.

public class Node
{
    public string Name;          // 이름
    public string Phone;         // 전화번호
    public Node NextNode;  // 다음 노드를 가리키는 포인터
}
  1. 메인 함수

메인 함수는 다음과 같이 작성되었습니다.

using System;

class MainClass
{
    public static void Main(string[] args)
    {
        int i;               // 반복용
        Node head = null;   // 첫 번째 노드
        Node current;       // 새롭게 추가되는 현재 노드

        Console.WriteLine("데이터 입력:");

        // 노드 추가
        for (i = 0; i < 3; i++)
        {
            current = new Node();                // 새 노드 생성
            string[] input = Console.ReadLine().Split(' ');
            current.Name = input[0]; // 값 대입
            current.Phone = input[1]; // 값 대입
            current.NextNode = head;           // 새 노드의 포인터에 첫번째 노드 지정
            head = current;                     // 새 노드를 첫번째 노드로 설정
        }

        Console.WriteLine("데이터 출력:");

        // 노드 출력
        current = head;
        while (current != null)
        {
            Console.WriteLine("{0} {1}", current.Name, current.Phone);
            current = current.NextNode;
        }
    }
}

이 예제에서는 사용자로부터 이름과 전화번호를 입력 받아 단일 연결 리스트에 저장하고, 리스트를 순회하며 입력된 데이터를 출력하는 과정을 보여줍니다. 이를 통해 단일 연결 리스트를 이용한 간단한 FIFO 구현 방법을 이해할 수 있습니다.

더 깊이 공부하고 싶다면
DevLec에서는 실무 중심의 C#, .NET, ASP.NET Core, Blazor, 데이터 액세스 강좌를 단계별로 제공합니다. 현재 수강 가능한 강좌 외에도 더 많은 과정이 준비되어 있습니다.
DevLec.com에서 자세한 커리큘럼을 확인해 보세요.
DevLec 공식 강의
C# Programming
C# 프로그래밍 입문
프로그래밍을 처음 시작하는 입문자를 위한 C# 기본기 완성 과정입니다.
ASP.NET Core 10.0
ASP.NET Core 10.0 시작하기 MVC Fundamentals Part 1 MVC Fundamentals Part 2
웹 애플리케이션의 구조와 MVC 패턴을 ASP.NET Core로 실습하며 익힐 수 있습니다.
Blazor Server
풀스택 웹개발자 과정 Part 1 풀스택 웹개발자 과정 Part 2 풀스택 웹개발자 과정 Part 3
실무에서 바로 활용 가능한 Blazor Server 기반 관리자·포털 프로젝트를 만들어 봅니다.
Data & APIs
Entity Framework Core 시작하기 ADO.NET Fundamentals Blazor Server Fundamentals Minimal APIs
데이터 액세스와 Web API를 함께 이해하면 실무 .NET 백엔드 개발에 큰 도움이 됩니다.
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com