다음은 원형연결리스트(circular linked list)의 맨 앞에 새로운 노드를 추가하는 알고리즘의 의사코드이다. ㉠, ㉡에 들어갈 문장으로 옳은 것은? (단, 원형연결리스트에서 ‘last’는 리스트의 맨 마지막 노드를 가리키는 포인터이고 초기치는 NULL이며, 변수 ‘p’는 새로 삽입되는 노드를 나타낸다. 또한 리스트에 3개 이상의 노드를 추가할 수 있어야 한다)
struct node {
int key;
struct node *next;
} *last = NULL; //마지막 노드를 가리키는 포인터
Function insertFront(struct node *p)
if (last == NULL) then // 리스트가 빈 경우
last = p;
p→next = p;
else // 리스트에 하나 이상의 노드가 있는 경우
㉠
㉡
end if
return; ㉠ ㉡
- ①p→next = last→next; last→next = p;
- ②last→next = p; p→next = last→next;
- ③p→next = last; last→next = p;
- ④last→next = p; p→next = last;
선지를 골라 바로 채점해 보세요.
정답 ①
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)