[c언어] 배열과 연결 리스트의 차이

배열과 연결 리스트는 C 언어에서 데이터를 저장하고 관리하는 데 사용되는 두 가지 주요 데이터 구조입니다. 하지만 두 구조체는 각각의 독특한 특성과 용도를 가지고 있습니다.

배열

배열은 고정된 크기의 연속된 메모리 블록으로 데이터를 저장하는 데 사용됩니다. 배열의 크기는 선언할 때 결정되며, 실행 중에 크기를 변경할 수 없습니다. 또한 배열은 인덱스를 사용하여 특정 위치에 있는 요소에 빠르게 접근할 수 있습니다.

예를 들어, 다음은 C 언어에서 정수형 배열을 생성하고 사용하는 간단한 예제입니다:

#include <stdio.h>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};

    for(int i = 0; i < 5; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

연결 리스트

연결 리스트는 노드들이 포인터를 사용하여 서로 연결된 데이터 구조입니다. 이는 각 요소가 데이터와 다음 요소를 가리키는 포인터로 이루어진 동적인 데이터 구조를 만들어냅니다. 연결 리스트는 동적으로 크기가 조정되며, 데이터의 삽입과 삭제가 용이합니다.

다음은 C 언어에서 정수형 연결 리스트를 생성하고 사용하는 간단한 예제입니다:

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

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

int main() {
    struct Node* head = NULL;
    head = (struct Node*)malloc(sizeof(struct Node));
    head->data = 1;
    head->next = NULL;

    return 0;
}

결론

간단히 말해, 배열은 고정된 크기의 메모리를 사용하며 인덱스를 통해 접근하고, 연결 리스트는 동적인 데이터 구조포인터를 통해 서로 연결됩니다.

이러한 차이점을 고려하여 프로그램에 적합한 데이터 구조를 선택하는 것이 중요합니다.

이러한 차이점을 고려하여 프로그램에 적합한 데이터 구조를 선택하는 것이 중요합니다.

Reference: