더북(TheBook)

그림 12-6은 이 과정을 그림으로 나타낸 것입니다. 자기 참조 구조체를 사용하면 구조체 배열을 사용했을 때보다 연결된 데이터들을 수정, 삭제, 삽입하는 데 효과적입니다.

그림 12-6 | 자기 참조 구조체의 포인터 변수를 사용해서 연결

 

예를 들어 그림 12-6에서 구조체 y를 삭제한다고 가정하겠습니다. y 구조체를 삭제한다는 의미는 연결 리스트에서 더 이상 연결되어 있지 않게 하는 것입니다. 즉 x의 포인터 변수 nexty 구조체의 주소 값이 아닌 z 구조체의 주소 값을 넣어주면 됩니다. z 구조체의 주소 값은 y 구조체의 next에 저장되어 있습니다. 이제 y 구조체의 next는 더 이상 z를 가리키지 않아도 됩니다. 그러므로 y의 포인터 변수 next에 널 값을 넣어주면 완전히 기존 연결 리스트에서 떨어져 나왔다고 할 수 있습니다.

x.next = y.next;
y.next = NULL;

그림 12-7 | 연결 리스트에서 y 구조체 삭제

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.