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

다음은 이중연결리스트의 맨 앞에 새로운 키 값을 갖는 노드를 삽입하는 알고리즘이다. ㉠ ~ ㉢에 들어갈 문장으로 옳게 짝지어진 것은? (단, head는 이중연결리스트의 맨 앞 노드를 가리키는 포인터이며, 리스트는 초기에 비어있다고 가정한다)
struct node { // 이중연결리스트의 노드 구조
       int key;
       struct node *prev; // 이전 노드를 가리키는 포인터
       struct node *next; // 다음 노드를 가리키는 포인터
};   
struct node *head = NULL; // 맨 처음 노드를 가리키는 포인터
void insertDoubleList(int ikey)
{
   struct node *temp; 
   temp = (struct node *) malloc(sizeof(struct node));
   if (temp == NULL) {  
       printf("Memory allocation is failed. \n");
       exit(1);
   }
   temp→key = ikey;
   ㉠ ;
   if (head == NULL) // 리스트에 노드가 없는 경우
      ㉡ ;
   else {              // 리스트에 노드가 있는 경우
      ㉢ ;
      head→prev = temp; 
   }
   head = temp;
}
 
㉠
㉡
㉢
①
temp→prev = NULL
temp→prev = head
temp→prev = head
②
temp→prev = NULL
temp→next = NULL
temp→next = head
③
head→next = temp
temp→next = NULL
temp→prev = head
④
head→next = temp
temp→prev = head
temp→next = head
자료구조론
  1. ①①
  2. ②②
  3. ③③
  4. ④④

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

정답 ②

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

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

오류 신고