C언어 구조체 연결리스트 정렬 삽입 삭제

연결 리스트는 각 노드가 다음 노드를 가리키는 자료구조다. 노드를 추가하거나 삭제할 때 배열처럼 요소를 옮기지 않아도 되지만, 포인터와 메모리 해제를 정확하게 관리해야 한다.




노드 구조

typedef struct Node {
    unsigned int id;
    char *name;
    int age;
    struct Node *next;
} Node;




마지막에 노드 추가

Node *node = malloc(sizeof(*node));
if (node == NULL) return;

node->id = next_id++;
node->name = name;
node->age = age;
node->next = NULL;

if (tail != NULL) tail->next = node;
else head = node;
tail = node;




삭제할 때는 이전 노드와 다음 노드를 다시 연결하고, 제거한 노드는 free()한다. 리스트를 끝까지 순회하는 해제 함수도 반드시 둔다.

Comments

댓글을 불러오고 있습니다.