본문 바로가기

자료구조

자료구조는 데이터를 저장·탐색·변경하는 관계와 순서를 정한 구조다. 배열·연결 리스트·스택·큐·트리의 연산별 장단점을 목적에 맞게 비교해야 한다.

눈으로 구조 잡기

연산 목적에 따라 비교하는 다섯 자료구조

위치·연결 방식

배열

연속 배치·인덱스 접근

연결 리스트

포인터 연결·삽입과 삭제

꺼내는 순서

스택

마지막 입력을 먼저 꺼냄

첫 입력을 먼저 꺼냄

여러 갈래 관계

트리

계층과 분기 규칙으로 탐색

  • 배열 접근 ↔ 변경 비용연결 리스트
  • 스택 꺼내는 순서 반대

데이터의 양만으로 구조를 고르지 말고 실제로 반복할 연산을 먼저 확인한다.

자료구조는 한쪽의 장점만 보는 것이 아니라 필요한 연산과 함께 생기는 비용을 묶어 선택한다.

선형 자료구조인 배열과 연결 리스트, 순서 규칙을 가진 스택과 큐, 비선형 계층 구조인 트리를 접근·삽입·삭제·꺼내기 방식으로 비교한 구조도

출처: 은광위키 자체 제작 · OWN
텍스트로 자세히 설명

배열은 인덱스로 접근하고 연결 리스트는 포인터를 바꾸어 삽입·삭제한다. 스택은 최근 입력부터, 큐는 먼저 들어온 입력부터 꺼낸다. 트리는 비교 규칙에 따라 여러 갈래 중 탐색 방향을 고른다.

목차

1. 개요

자료구조는 데이터를 어떤 관계와 순서로 저장하고, 어떤 방식으로 찾고 바꿀지를 정한 구조다. 좋은 자료구조는 하나로 정해져 있지 않다. 접근 속도, 삽입·삭제 비용, 저장 공간, 데이터의 관계를 함께 따져 목적에 맞게 골라야 한다. CPU와 메모리의 상호 작용, 데이터를 학습하는 기술, 장면 데이터를 화면으로 바꾸는 과정도 결국 데이터를 어떤 구조로 다루는지와 연결된다.

2. 상세

2.1. 선형과 비선형

선형 자료구조는 데이터가 앞뒤의 순서를 따라 이어지는 구조다. 배열, 연결 리스트, 스택, 큐가 여기에 속한다. 비선형 자료구조는 한 데이터가 여러 데이터와 갈래를 이루며 연결될 수 있고, 트리와 그래프가 대표적이다.1 선형·비선형은 단순히 화면에 그린 모양이 아니라 데이터 사이의 관계를 기준으로 한 구분이다.

2.2. 배열과 연결 리스트

배열은 데이터를 메모리의 연속된 위치에 놓는다. 시작 위치와 인덱스를 알면 원하는 원소의 위치를 바로 계산할 수 있다.2 그러나 배열 중간에 원소를 넣거나 빼면 뒤의 원소들을 옮겨야 할 수 있다.

연결 리스트는 각 원소가 다음 원소의 위치를 가리키는 포인터를 가진다. 원소가 메모리에 연속해서 놓일 필요가 없고 연결만 바꾸어 삽입·삭제할 수 있다. 대신 특정 순서의 원소를 찾으려면 앞에서부터 포인터를 따라가야 한다.3

2.3. 스택과 큐

스택은 마지막에 넣은 데이터를 먼저 꺼내는 후입선출 구조다. 방문 기록에서 직전에 본 페이지로 되돌아가는 흐름처럼, 가장 최근 상태를 먼저 복원할 때 알맞다. 큐는 먼저 넣은 데이터를 먼저 꺼내는 선입선출 구조로, 들어온 순서를 지켜 처리하는 대기열에 맞는다.4

2.4. 트리와 탐색 기준

트리는 하나의 노드에서 여러 자식 노드로 갈라지는 계층 구조다. 이진 탐색 트리는 각 노드를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽에 두는 규칙을 사용한다. 찾는 값과 현재 노드를 비교해 이동 방향을 정하므로 모든 노드를 차례로 보지 않고 탐색 범위를 줄일 수 있다.5 다만 트리의 모양과 정렬 상태에 따라 실제 탐색 비용은 달라진다.

3. 수능에서는 이렇게 나온다

자료구조 문제에서는 구조의 이름보다 연산의 조건을 먼저 찾는다. ‘몇 번째 원소에 곧바로 접근’, ‘중간 삽입이 반복’, ‘최근 항목부터 복원’, ‘도착 순서대로 처리’, ‘비교하며 탐색 범위 축소’ 같은 조건을 자료구조의 성질과 연결한다.

한 장점이 커지면 다른 비용이 생길 수 있다는 점도 중요하다. 배열은 접근이 빠르지만 중간 변경 비용이 커질 수 있고, 연결 리스트는 연결 변경이 쉽지만 임의 위치 접근에는 순차 탐색이 필요하다. 선지에서 서로 다른 구조의 장점을 바꾸어 붙였는지 확인한다.

4. 헷갈리기 쉬운 것들

자료구조 핵심 관계 유리한 연산 함께 생기는 비용
배열 연속된 위치와 인덱스 임의 위치 접근 중간 삽입·삭제 시 이동 가능
연결 리스트 포인터로 다음 원소 연결 연결을 바꾸는 삽입·삭제 원하는 위치까지 순차 이동
스택 후입선출 최근 상태부터 꺼내기 먼저 들어온 항목은 아래에 남음
선입선출 도착 순서대로 처리 뒤에 들어온 항목은 기다림
이진 탐색 트리 비교 결과로 좌우 분기 규칙에 따른 범위 축소 구조가 치우치면 효율이 낮아질 수 있음

5. 관련 개념

각주

  1. ‘선형’은 데이터가 한 줄의 순서 관계를 이루고, ‘비선형’은 여러 갈래 관계를 허용한다는 뜻이다.

  2. 인덱스는 배열의 시작점에서 원소가 몇 번째 위치에 있는지를 나타낸다.

  3. 포인터는 다음 데이터가 놓인 메모리 주소를 담아 떨어진 원소들을 연결한다.

  4. 스택과 큐는 저장 모양보다 데이터를 꺼내는 순서 규칙이 핵심이다.

  5. 이진 탐색 트리의 좌우 배치 규칙이 유지되어야 비교를 통한 탐색 축소가 가능하다.

출제 이력 18회

이 개념이 어느 시험·지문에 등장했는지의 기록입니다. 개념 자체의 난이도가 아니라 출제 맥락을 보여줍니다.

  1. 26학년도 9월 모평독서
    지문 내 문항
    • 142
    • 152
    • 162
    • 173
  2. 23학년도 9월 모평독서
    지문 내 문항
    • 142
    • 152
    • 163
    • 172
  3. 21학년도 6월 모평독서
    지문 내 문항
    • 252
    • 262
    • 272
    • 283
  4. 18학년도 6월 모평독서
    지문 내 문항
    • 302
    • 313
    • 322
    • 332
    • 342
  5. 18학년도 수능독서
    지문 내 문항
    • 382
    • 392
    • 402
    • 413
    • 422
  6. 17학년도 6월 모평독서
    지문 내 문항
    • 162
    • 172
    • 182
    • 193
  7. 16학년도 6월 모평 A형독서
    지문 내 문항
    • 162
    • 172
    • 183
  8. 16학년도 9월 모평 A형독서
    지문 내 문항
    • 162
    • 172
    • 183
  9. 15학년도 9월 모평 A형독서
    지문 내 문항
    • 192
    • 202
    • 213
  10. 15학년도 수능 A형독서
    지문 내 문항
    • 202
    • 212
    • 223
  11. 14학년도 6월 모평 B형독서
    지문 내 문항
    • 212
    • 222
    • 233
  12. 14학년도 6월 모평 A형독서
    지문 내 문항
    • 192
    • 202
    • 213
  13. 14학년도 9월 모평 A형독서
    지문 내 문항
    • 222
    • 232
    • 242
    • 252
  14. 13학년도 6월 모평독서
    지문 내 문항
    • 192
  15. 13학년도 6월 모평독서
    지문 내 문항
    • 442
    • 463
  16. 13학년도 9월 모평독서
    지문 내 문항
    • 312
    • 322
    • 332
    • 342
  17. 12학년도 9월 모평독서
    지문 내 문항
    • 472
    • 482
    • 492
    • 502
  18. 11학년도 수능독서
    지문 내 문항
    • 252
    • 263

이 문서를 가리키는 문서

잘못된 내용을 발견하셨나요? 신고해 주시면 검토 후 반영합니다.

다음 단계

이 개념, 실제 지문에서 훈련하기

수능특강·기출 지문 해설로 개념이 문항에서 어떻게 쓰이는지 직접 확인해보세요.

학습 자료 보러가기