널널한 개발자 TV의 자료구조 강의 시리즈를 정리할 것이다.

노드(Node)
- 데이터를 담기위한 바구니, 컨테이너 같은 것
보통 연결 리스트 예제를 작성할 때는 메모리를 동적 할당하는 것이 일반적이지만 구조체를 배열로 선언하는 단순한 방법으로 연결 리스트를 생성한다.
이해를 목적으로 만드는 예제이기 때문이다.
#include <stdio.h>
typedef struct NODE
{
	// 관리될 데이터
	int nData;
    
    // 데이터 관리를 위한 포인터
    struct NODE *next;
} NODE;
int main(void)
{
	NODE list[5] = { 0, };
	// 값 초기화
	list[0].nData = 100;
    list[1].nData = 200;
    list[2].nData = 300;
    list[3].nData = 400;
    list[4].nData = 500;
	// 연결 리스트 구조화
    list[0].next = &list[1];
    list[1].next = &list[2];
    list[2].next = &list[3];
    list[3].next = &list[4];
    list[4].next = NULL;
    
    for (int i = 0; i < 5; ++i)
    	printf("list[%d]: %d\n", i, list[i].nData);
    printf("\n");
	NODE *pTmp = &list[0];
    while (pTmp != NULL)
    {
    	printf("%p: %d\n", pTmp, pTmp->nData);
        pTmp = pTmp->next;
    }
	return 0;
}