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

다음 C 코드에서 foobar 함수가 하는 일을 올바르게 설명한 것은?
struct list_t {
    int   data;
    struct list_t *link;
};
typedef struct list_t *list_p;
 
void foobar(list_p *ptr, struct list_t *node)
{
    if (*ptr == NULL) {
        *ptr = node;
        node->link = node;
    } else {
        node->link = (*ptr)->link;
        (*ptr)->link = node;
    }
}
자료구조론
  1. ①한 줄로 연결된 단순 연결 리스트에서 *ptr이 가리키는 노드의 뒤에 node를 삽입, 리스트가 비어 있으면 node로 새로 리스트를 만든다.
  2. ②한 줄로 연결된 이중 연결 리스트에서 *ptr이 가리키는 노드의 뒤에 node를 삽입, 리스트가 비어 있으면 node로 새로 리스트를 만든다.
  3. ③원형으로 연결된 단순 연결 리스트에서 *ptr이 가리키는 노드의 뒤에 node를 삽입, 리스트가 비어 있으면 node로 새로 리스트를 만든다.
  4. ④원형으로 연결된 이중 연결 리스트에서 *ptr이 가리키는 노드의 뒤에 node를 삽입, 리스트가 비어 있으면 node로 새로 리스트를 만든다.

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

정답 ③

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

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

오류 신고