다음은 원형 연결 리스트(circular linked list)의 맨 앞에 insert_node가 지정하는 노드를 삽입하는 C 언어 함수이다. ㉠, ㉡에 들어갈 내용을 바르게 연결한 것은? (단, last_ptr은 마지막 노드를 지정하는 포인터 변수를 가리키는 주소 값을 가진다)
struct node {
int data;
struct node *link;
};
typedef struct node *node_ptr;
void InsertFront(node_ptr *last_ptr,
node_ptr insert_node){
if (*last_ptr == NULL) {
*last_ptr = insert_node;
㉠
}
else {
insert_node->link = (*last_ptr)->link;
㉡
}
} ㉠ ㉡
- ①insert_node = insert_node->link; (*last_ptr) = insert_node;
- ②insert_node = insert_node->link; (*last_ptr)->link = insert_node;
- ③
insert_node->link = insert_node; (*last_ptr) = insert_node;
- ④
insert_node->link = insert_node; (*last_ptr)->link = insert_node;
선지를 골라 바로 채점해 보세요.
정답 ④
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)