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
   84   85   86   87   88   89   90   91   92   93   94