[c언어] 연결 리스트

C 언어에서 연결 리스트는 데이터를 동적으로 저장하기 위한 효율적인 방법입니다. 연결 리스트는 각 데이터 요소가 이전 요소나 다음 요소에 대한 포인터를 가지고 있는 자료 구조입니다. C 언어에서 연결 리스트를 사용하는 방법을 알아보겠습니다.

연결 리스트 구조체 정의

#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int data;
    struct Node* next;
} Node;

위의 코드에서 Node 구조체는 데이터와 다음 노드에 대한 포인터를 가지고 있습니다.

연결 리스트 노드 추가

Node* addNode(Node* head, int data) {
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->data = data;
    newNode->next = head;
    return newNode;
}

위의 코드에서 addNode 함수는 새로운 노드를 생성하고 리스트의 헤드로 추가하는 역할을 합니다.

연결 리스트 출력

void printList(Node* head) {
    Node* current = head;
    while (current != NULL) {
        printf("%d ", current->data);
        current = current->next;
    }
}

위의 코드에서 printList 함수는 연결 리스트의 값을 출력합니다.

C 언어를 사용하여 간단한 연결 리스트를 구현하는 방법에 대해 알아보았습니다. 연결 리스트는 데이터를 삽입하고 삭제하기 용이하며, 동적으로 크기를 조절할 수 있어 메모리를 보다 효율적으로 활용할 수 있습니다.

참고문헌: GeeksforGeeks - Linked List in C/C++