[7급 국가직 자료구조론 2015년 12번]

다음은 원형연결리스트(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;
㉠ ㉡
자료구조론
  1. ①p→next = last→next; last→next = p;
  2. ②last→next = p; p→next = last→next;
  3. ③p→next = last; last→next = p;
  4. ④last→next = p; p→next = last;

선지를 골라 바로 채점해 보세요.

정답 ①

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

신고가 접수됐습니다. 감사합니다.

오류 신고