미션 39: 내 친구를 리스트로 저장하기 ➊
다음과 같이 친구 네 명의 나이와 이름 정보를 저장하는 연결 리스트를 자기 참조 구조체를 이용해서 생성하려고 합니다. 내 친구의 정보를 저장할 수 있도록 구조체를 선언하고 내 친구의 나이를 추가하고, 서로 연결하여 내 친구 연결 리스트를 구성해 보세요.
내 친구의 정보를 저장하는 연결 리스트 구성이 완료되었으면 리스트를 순회하면서 내 친구의 나이와 이름을 차례대로 출력하는 코드를 작성하세요.
그림 12-8 | 친구 네 명의 정보를 저장하는 연결 리스트
※ 힌트:
1. 포인터 변수에 ‘\0’ 또는 NULL(널)을 대입하면 더 이상 다른 구조체를 연결하지 않습니다. 즉, 연결 리스트의 마지막을 의미합니다.
2. for 반복문을 사용하여 첫 번째 구조체부터 모든 구조체 자료를 차례대로 출력해야 합니다.
for (ptr = &a; ptr; ptr = ptr->next)
예를 들어 for (A ; B ; C)로 생각하면 다음과 같습니다. A는 for 반복문 시작 시에 수행하는 초깃값을 의미하고, 두 번째 항목 B가 참이면 for 반복문을 반복 수행하고 B가 NULL이면 for 반복문을 끝냅니다. for 반복문 다음 과정을 통해 현재 리스트 항목을 가리키는 ptr은 다음 리스트를 가리키도록 변경되어 반복문을 다시 진행합니다. 여기서 for 반복문의 반복 조건인 ptr은 곧 ptr != NULL과 같은 의미입니다. ptr이 NULL이라면 반복 조건은 FALSE가 되고, NULL이 아니라면 반복 조건은 TRUE가 됩니다.