연결 리스트는 각 노드가 다음 노드를 가리키는 자료구조다. 노드를 추가하거나 삭제할 때 배열처럼 요소를 옮기지 않아도 되지만, 포인터와 메모리 해제를 정확하게 관리해야 한다.
노드 구조
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()한다. 리스트를 끝까지 순회하는 해제 함수도 반드시 둔다.
댓글을 불러오고 있습니다.