Page 89 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 89
02-2 구조체
구조체는 임의의 데이터를 다시 조합하여 만드는 자료구조입니다.
구조체란?
name height vision
어느 그룹의 신체검사 데이터(이름, 키, 시력)를 0 박현규 0 162 0 0.3
처리한다고 가정하겠습니다. 그리고 지금까지 1 함진아 1 173 1 0.7
2 최윤미 2 175 2 2.0
배운 대로 그림 2-20처럼 각 항목에 대해 배열 3 홍연의 3 171 3 1.5
을 준비합니다(이 그림은 그룹이 7명입니다). 예를 4 이수진 4 168 4 0.4
5 김영준 5 174 5 1.2
들어, name[0] ‘박현규’의 키는 height[0]에 6 박용규 6 169 6 0.8
저장되고, 시력은 vision[0]에 저장됩니다. [그림 2-20] 이름의 배열, 키의 배열, 시력의 배열
그런데 각 개인의 데이터를 같은 인덱스 요소
에 저장하도록 프로그램에서 직접 관리하는 것은 어려운 일입니다. 심술궂은 프로그래머가
키를 이름의 역순으로 저장하고 시력을 무작위로 저장할 수도 있습니다.
현실에서는 그림 2-21처럼 각 개인의 카드를 사람 수만큼 준비하고 거기에 시력과 키 데이터
를 적어 넣으면 됩니다. 프로그램에서도 이런 방법으로 구현해야 합니다.
이름 : 박현규 0 박현규 162 0.3
이름 : 함진아
키 : 169
키 : 169
시력 : 0.8 이름 : 최윤미 1 함진아 173 0.7
키 : 169
시력 : 0.8 이름 : 홍연의 2 최윤미 175 2.0
키 : 169
시력 : 0.8 이름 : 이수진 3 홍연의 171 1.5
키 : 169
시력 : 0.8 이름 : 김영준 4 이수진 168 0.4
키 : 169
시력 : 0.8 이름 : 박용규 5 김영준 174 1.2
시력 : 0.8 6
키 : 169
시력 : 0.8 박용규 169 0.8
[그림 2-21] 이름, 키, 시력을 한 세트로 만든 ‘카드’ 배열
구조체 선언
임의의 자료형의 요소를 조합하여 다시 만든 자료구조가 구조체(structure)입니다. 다음 그림
2-22는 간단한 구조로 이루어진 구조체를 나타낸 것이며, 초록색으로 표시한 부분은 ‘struct
xyz는 이런 형이에요.’라고 선언한 부분입니다. 이렇게 구조체에 붙는 이름 앞의 xyz를 구조
02• 기본 자료구조 89