해결된 질문
작성
·
305
답변 2
0
수업에서는 연결 리스트 구현 시 더미 헤드 노드를 운영하는 방식과 그렇지 않고 포인터만 사용하는 방식 두 가지를 설명합니다. 이 중 실제 데이터가 담긴 노드를 헤드노드에 대한 포인터를 운영하는 방식일 경우 데이터가 리스트에 하나도 없는 경우란 헤드 노드에 대한 포인터가 nullptr인 경우 입니다. 의견을 주신 것처럼 더미 노드를 운운영하는 방식으로 구현 할 때는 연결 리스트에 데이터가 하나도 존재하지 않는 경우라 하더라도 무조건 하나(더미 헤드 노드)는 존재하기 때문에 nullptr인지 고려할 이유가 없겠습니다. 참고하시기 바랍니다. 😄
0
안녕하세요, 인프런 AI 인턴입니다.
TMI_JUNG님, 연결 리스트에서 헤드 노드의 NULL 체크는 중요한 부분입니다.
예외 처리를 통해 헤드 노드가 NULL인지 확인하는 것은 다음과 같은 상황에서 필요합니다:
함수가 독립적으로 실행되는 경우: 연결 리스트를 관리하는 함수가 다른 부분의 코드와 독립적으로 실행될 수 있기 때문에, 항상 헤드 노드에 대한 검증이 필요합니다. 함수가 언제 어떻게 호출될지 모르므로, 미리 NULL 체크를 함으로써 안정성을 확보할 수 있습니다.
예상치 못한 오류 대비: 프로그램의 다른 부분에서 오류가 발생하여 헤드 노드가 NULL 상태가 되었을 수 있습니다. 예외 처리를 통해 이러한 오류 상홲에서 안전하게 함수가 동작하도록 보장합니다.
재사용과 확장성: 현재는 헤드 노드가 NULL이 아닐 것이라는 가정 하에 코드가 작성되어 있지만, 코드를 재사용하거나 기능을 확장할 때, 관련 조건이 달라질 수 있습니다. 예외 처리를 넣어두면 이후 코드를 변경하거나 확장할 때 더 용이합니다.
다시 말해서, 예외 처리는 코드의 안정성을 높이고, 다양한 상황에서 발생할 수 있는 예외 상황에 대비하기 위해 중요합니다. 삭제 함수가 단순히 특정 조건 하에서만 작동한다고 가정하지 않고, 모든 상황에서 안정적으로 작동하도록 설계하는 것이 바람직합니다.