본문으로 건너뛰기

자료구조의 분류

정보처리기사 목차자료구조레슨 136 / 233

목차

자료구조(data structure)는 자료를 기억장치에 어떤 모양으로 이어 둘지 정한 틀입니다. 같은 자료라도 이어 둔 모양에 따라 찾고 넣고 빼는 방법과 빠르기가 달라져, 하려는 일에 맞는 모양을 골라야 합니다. 자료구조는 한 자료 뒤에 이어지는 자료가 하나뿐인 선형 구조와, 여럿일 수 있는 비선형 구조로 나뉩니다. 아래 그림은 같은 자료 일곱 개가 한 줄, 나무, 그물 모양으로 늘어서는 모습을 보이고, 끝에서 구조 이름 일곱을 두 갈래로 직접 나눠 보게 합니다.

6단계 중 1단계. 자료구조는 자료를 어떤 모양으로 이어 둘지 정한 틀입니다. 같은 자료라도 이어 둔 모양에 따라 찾고 넣고 빼는 방법이 달라집니다.

이름표를 하나 고른 뒤, 다음 자료가 몇 개인지 따져 맞는 칸에 넣어 보세요.

0 / 7개 나눔

1선형 구조 — 다음 자료가 하나뿐인 한 줄

선형 구조(linear structure)는 한 자료의 앞과 뒤에 자료가 하나씩만 이어지는 구조입니다. 그래서 자료가 한 줄로 늘어서고, 어느 자료든 '다음'이 하나로 정해집니다. 선형 구조 다섯은 모두 한 줄이고, 어디로 넣고 어디서 빼느냐로 갈립니다.

구조넣는 곳빼는 곳
배열(array)번호로 정한 칸번호로 정한 칸
연결 리스트(linked list)아무 자리(화살표를 바꿔 끼움)아무 자리
스택(stack)한쪽 끝넣은 그 끝
큐(queue)뒤앞
데크(deque)앞과 뒤앞과 뒤

배열은 가운데에 넣으면 뒤의 자료를 한 칸씩 밀어야 하지만, 연결 리스트는 화살표만 바꿔 끼웁니다. 데크는 양쪽 끝이 열린 큐(double-ended queue)를 줄인 이름입니다. 자료에 따라 배열과 연결 리스트를 묶어 선형 리스트(linear list)라고도 부릅니다.

2비선형 구조 — 다음 자료가 여럿

비선형 구조(non-linear structure)는 한 자료 뒤에 자료가 여럿 이어질 수 있는 구조입니다. 한 줄로 세우려면 갈림길마다 어느 쪽을 먼저 둘지 골라야 하고, 그 순간 이어진 관계 일부가 사라집니다. 비선형 구조는 트리와 그래프 둘이고, 위아래가 있는지로 갈립니다.

가르는 기준트리(tree)그래프(graph)
위아래맨 위 하나에서 아래로 갈라진다없다
위로 이어지는 자료맨 위를 빼면 늘 하나정해져 있지 않다
출발한 자료로 돌아오는 길없다생길 수 있다
비슷한 장면회사 조직도지하철 노선도

트리는 트리에서, 그래프는 그래프와 탐색에서 자세히 봅니다.

예제

장면마다 맞는 구조 고르기

다음 다섯 장면에 맞는 자료구조를 먼저 골라 본 뒤 아래 표를 보세요.

  • (가) 웹 브라우저에서 '뒤로'를 누르면 가장 최근에 본 쪽부터 거꾸로 돌아갑니다.
  • (나) 프린터가 먼저 받은 문서부터 차례로 인쇄합니다.
  • (다) 컴퓨터의 폴더 안에 폴더가 여럿 있고, 폴더마다 바로 위 폴더는 하나입니다.
  • (라) 항공편이 도시마다 여러 도시로 이어지고, 떠난 도시로 돌아오는 노선도 있습니다.
  • (마) 학번 1번부터 30번까지 성적을 차례로 담아 두고, 17번 성적을 곧바로 꺼냅니다.
장면가르는 실마리구조갈래
(가)마지막에 본 쪽이 먼저 나온다스택선형
(나)먼저 들어온 문서가 먼저 나온다큐선형
(다)위는 하나, 아래는 여럿트리비선형
(라)여럿과 여럿, 돌아오는 길이 있다그래프비선형
(마)번호로 곧바로 찾는다배열선형

갈래를 가를 때는 자료가 몇 개인지가 아니라 '한 자료 다음에 몇 개가 이어지나'를 봅니다. (나)의 문서도 (다)의 폴더도 여럿이지만, 문서 하나 다음은 문서 하나이고 폴더 하나 아래는 폴더 여럿입니다.

시험 포인트

  • 필기: 자료구조는 선형 구조(배열·연결 리스트·스택·큐·데크)와 비선형 구조(트리·그래프)로 나뉩니다. 가르는 기준은 한 자료 뒤에 이어지는 자료가 하나인가 여럿인가입니다. '선형 구조가 아닌 것'을 고르는 꼴로 자주 나오고, 이름이 낯선 데크를 비선형으로 착각하게 하는 보기가 함정입니다. 데크는 양 끝에서 넣고 빼는 한 줄이라 선형입니다.
  • 실기: 갈래 이름은 선형 구조(Linear Structure)·비선형 구조(Non-Linear Structure)로 씁니다. 보기의 구조 이름을 두 갈래로 나누어 쓰는 꼴로도 나옵니다.

확인 문제

1. 다음 가운데 비선형 구조로 담아야 하는 자료를 고르세요.

  • ① 은행 창구의 대기 번호
  • ② 문서 편집기의 '실행 취소' 기록
  • ③ 운동 대회의 토너먼트 대진표
  • ④ 갈림길이 없는 버스 노선의 정류장 차례
정답

③입니다. 경기마다 이긴 쪽이 올라가는 위 경기는 하나이고, 아래로는 앞선 경기 둘이 이어집니다. 위는 하나, 아래는 여럿인 트리라 비선형입니다.

  • ① 먼저 온 손님이 먼저 불리는 한 줄입니다(큐).
  • ② 마지막에 한 일을 먼저 되돌리는 한 줄입니다(스택).
  • ④ 정류장마다 다음 정류장이 하나뿐인 한 줄입니다. 갈림길과 다른 노선이 얽힌 노선도 전체라면 그래프지만, 갈림길 없는 한 노선은 선형입니다.

2. 다음 (가)·(나)에 맞는 갈래 이름을 한글 이름과 영문으로 함께 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.

  • (가) 어느 자료에서 출발해도 갈림길을 만나지 않고, 처음부터 끝까지 한 번에 차례대로 읽힙니다.
  • (나) 어떤 자료에서는 길이 세 갈래로 나뉩니다. 세 갈래를 한 줄에 이어 붙이면 어느 셋이 같은 자료에서 갈라졌는지 알 수 없게 됩니다.
정답

받는 답: (가) 선형 구조(Linear Structure) · (나) 비선형 구조(Non-Linear Structure)

(가)의 실마리는 '갈림길 없이 한 번에 차례대로 읽힌다', (나)는 '한 자료에서 세 갈래로 나뉜다'입니다. 갈래는 한 자료 뒤에 이어지는 자료의 수로 가릅니다.

  • 틀리는 꼴 트리 — (나)에: 비선형 구조에 드는 구조 하나의 이름입니다. 문제는 갈래 이름을 물었습니다.
  • 틀리는 꼴 큐 — (가)에: 선형 구조에 드는 구조 하나의 이름입니다. 넣고 빼는 자리에 대한 실마리는 문제에 없습니다.

3. 다음 (가)~(바)를 선형 구조와 비선형 구조로 나누고, 장면마다 맞는 구조 이름을 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.

  • (가) 콜센터가 걸려 온 전화를 들어온 차례대로 상담원에게 넘깁니다.
  • (나) 친구 관계 — 내 친구 둘이 서로 친구일 수도 있습니다.
  • (다) 계산기가 괄호 짝을 맞출 때 가장 나중에 연 괄호부터 닫습니다.
  • (라) 책의 목차 — 장 아래에 절이 여럿, 절 아래에 항이 여럿 있습니다.
  • (마) 열차의 앞쪽에도 뒤쪽에도 칸을 붙이고 떼어 냅니다.
  • (바) 재생 목록 가운데에 노래 한 곡을 끼워 넣어도 다른 곡들은 자리를 옮기지 않습니다.
정답

받는 답: 선형 구조 — (가) 큐 · (다) 스택 · (마) 데크 · (바) 연결 리스트 / 비선형 구조 — (나) 그래프 · (라) 트리

바구니를 가르는 기준은 '한 자료 다음에 이어지는 자료가 하나인가'입니다.

  • (가) 먼저 걸려 온 전화가 먼저 나가는 한 줄이라 큐입니다.
  • (나) 사람마다 여러 사람과 이어지고, 나와 서로 친한 친구 둘이 세 사람의 고리를 이뤄 돌아오는 길이 생깁니다. 그래프입니다.
  • (다) 마지막에 연 괄호가 먼저 닫히는 한 줄이라 스택입니다.
  • (라) 절 하나의 위는 장 하나, 아래는 항 여럿이라 트리입니다.
  • (마) 양 끝 모두에서 붙이고 떼는 한 줄이라 데크입니다. 끝이 둘이라 비선형으로 고르기 쉽지만, 칸마다 다음 칸은 하나입니다.
  • (바) 가운데에 끼워도 나머지가 밀리지 않는 것은 화살표만 바꿔 끼우는 연결 리스트입니다. 배열이었다면 뒤의 곡들이 한 칸씩 밀립니다.

끝까지 내려오면 저절로 표시됩니다. 이 기기에만 저장합니다.

정보처리기사 목차로