[7급 국가직 자료구조론 2017년 11번]

다음은 연결 스택(linked stack)에서 새로운 노드를 삽입하는 C 언어 프로그램이다. ㉠, ㉡에 들어갈 내용으로 옳게 짝지은 것은? (단, top은 스택의 첫 번째 노드를 가리키는 포인터이며, top이 NULL이면 공백 스택이다)
typedef struct node { 		
  int key;	
  struct node *link; 	
} StackNode;

StackNode *top = NULL;

void push(int data) {
  StackNode *tmp = (struct node*)malloc(sizeof(StackNode));
  if (tmp == NULL) {
    printf("Memory allocation is failed.\n"); 
    exit(1);
  }
  tmp→key = data;
  if (top == NULL) { 
    tmp→link = NULL;
    top = tmp;
  }
  else {
    ㉠;
    ㉡;
  }
}
㉠ ㉡
자료구조론
  1. ①tmp→link = top top = tmp
  2. ②top→link = tmp tmp = top→link
  3. ③top→link = tmp tmp = top
  4. ④tmp→link = top top = tmp→link

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

정답 ①

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

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

오류 신고