본문 바로가기

주메뉴 바로가기

지안에듀 로고 빅모의고사 로고

문제은행 공통과목

이동할 직렬을 선택해주세요.

닫기
로그인 지안에듀 바로가기
문제은행

지안에듀의 문제은행을 실전처럼 활용해보세요.

2022 군무원 7급 자료구조론 시험 목록 바로가기

  1. 문제은행

25문제가 검색되었습니다.

  • 1

    다음은 어떤 이진트리에 대한 전위(pre-order) 및 중위(in-order) 순회 시 방문순서이다. 이 이진트리에 대한 설명으로 가장 옳지 않은 것은?

    전위순회: b a c f d e g
    중위순회: a c b d e f g

     

    해설
  • 2

    다음 중위 표기식을 전위 표기로 나타낸 것으로 가장 옳은 것은?

    (a+b)*c-(d-e)*6

     

    해설
    전위 표기로 나타내기 위해서는 괄호가 필요하다.
    (((a+b)*c)-((d-e)*6))
    피연산자 순서는 변하지 않고, 연산자만 대칭되는 괄호의 앞쪽으로 이동시키면 된다.
    -*+abc*-de6
  • 3

    다음 이진탐색트리에서 16을 삭제 후 다시 삽입하였다. 연산이 끝난 후 왼쪽과 오른쪽의 양쪽 자식이 모두 내부노드인 노드들을 모두 나열한 리스트로 가장 옳은 것은?

     

    해설
    16 삭제 후에 좌측 서브트리에서 가장 큰 원소(13) 또는 우측 서브트리에서 가장 작은 원소(20)로 대체할 수 있다. 어느 원소로 대체를 하든 16 삽입 후 내부노드는 7, 13, 20, 25로 동일하다.
  • 4

    QD는 덱(deque)을 이중연결리스트(doubly linked list)로, QS는 덱(deque)을 단일연결리스트(singly linked list)로 각각 구현하였다. 이때 덱(deque)의 후방(rear)에서 한 요소를 삭제하는 연산의 시간 복잡도로 가장 옳은 것은?

     

    해설
    연결리스트에서 삭제를 하기 위해서는 이전 노드의 주소를 알아야 한다. 이중연결리스트로 구현 시에는 양방향 이동이 자유롭기 때문에 O(1) 시간에 삭제가 가능하다. 그러나 단순연결리스트는 이전 노드의 주소를 구하기 위해서는 헤드부터 탐색을 해야 하기에 O(N) 시간에 삭제가 가능하다.
  • 5

    퀵 정렬(quick sort)에 대한 설명 중 가장 옳지 않은 것은?

     

    해설
    퀵 정렬에서 최악은 정렬된 원소(내림차순, 오름차순)를 내림차순 또는 오름차순으로 정렬하는 경우이다.
  • 6

    스택에서 아래와 같은 연산들을 순서대로 실행했을 때, 출력되는 결과로 가장 옳은 것은?

     

    해설
    pop() 연산은 스택의 Top에 있는 원소를 출력한다. 순서대로 실행했을 때, 출력되는 결과는 9, 6, 3, 2, 7이다.
  • 7

    다음 그래프에서 위상정렬(topological sort)을 한 결과로 가장 옳은 것은?

     

    해설
    위상정렬(Topological sort)은 사이클을 갖지 않는 방향 그래프(DAG)로 표현된 정점 작업 네트워크(AOV)의 순서리스트를 표현한 것으로서, 임의의 정점 Va가 Vb보다 선행자일 경우 Va가 먼저 제거된 후 Vb의 제거가 가능하다. ①, ②, ③ 모두 노드 C에서 위상정렬이 이루어지지 않는다.
  • 8

    다음 코드의 출력으로 가장 옳은 것은?

    1. int A(int a, int b) {
    2. if (b == 1) return a;
    3. else return a + A(a, b-1);
    4. }
    5. main () {
    6. A(3, 4);
    7. }

     

    해설
    A(3, 4) = 3 + A(3, 3) = 3 + 3 + A(3, 2)= 3 + 3 + 3 + A(3, 1) = 3 + 3 + 3 + 3 = 12
  • 9

    허프만(Huffman) 코드는 손실 없는 데이터 압축 코딩 기법이다. 다음 허프만 트리에서 문자 ‘B’의 허프만 코드로 가장 옳은 것은? (단, 각 단말 노드에서 문자열의 숫자는 해당 문자의 빈도수이다.)

     

    해설
    허프만 코드(Huffman code)는 문자의 출현 확률 또는 사용 빈도를 고려한 가변 길이 코드 체계로 왼쪽 분기를 0으로 오른쪽 분기를 1로 한다. B의 허프만 코드는 0101이 된다.
  • 10

    변수 Start가 다음과 같이 선언되어 있을 때, 아래의 그림을 참조하여 *((*Start).name+1)의 값으로 가장 옳은 것은?

    struct node { char name[10]; int age;
    struct node *ptr;}
    struct node *Start;

     

    해설
    (*Start).name은 첫 번째 노드의 name이 된다.(Mary) *((*Start).name+1)는 첫 번째 노드 name의 2번째 문자가 된다.(a)