데이터를 어떤 방식으로 저장하고 정렬하느냐에 따라 추출 방식 등 데이터 처리 및 조작하는데 필요한 코드가 달라짐
목적 - 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기위해 사용 - 적절한 자료구조의 사용은 실행시간을 단축시켜주고, 메모리의 용량을 절약해줌
2. 자료구조의 선택기준
자료의 처리시간
자료의 크기
자료의 활용 빈도
자료의 갱신 정도
프로그램의 용이성
3. 자료구조의 특징
효율성 - 자료구조를 사용하는 목적은 효율적인 데이터의 사용 및 관리 - 적절한 자료구조를 선택해 이용하면 데이터 처리의 효율이 올라감
추상화 - 복잡한 자료, 모듈, 시스템등으로부터 핵심적인 개념만 간추려 내는 것 - 자료구조를 구현할때 중요한 것은 어느 시점에 데이터를 삽입할 것이며(알고리즘 중점x), 어느 시점에 데이터를 추출하고 이러한 데이터를 어떻게 사용할 것인지 초점을 맞출 수 있음 - 자료구조 내부의 구현보다 어떻게 사용해야 하는지, 추상적인 개념에 대해 이해하는것이 더욱 중요
재사용성 - 자료구조를 설계할 때 특정 프로그램에서만 동작하게 설계하지 않음 - 다양한 프로그램에서 동작 할 수 있도록 범용성 있게 설계하기 때문에 해당 프로젝트가 아닌 다른 프로젝트에서도 사용 가능
4. 자료구조의 분류
선형구조 - 데이터가 일렬(순차적)로 나열되어있는 것 - 자료들간의 전후관계가 1:1
비선형 구조 - 특정 형태가 있는 것 - 하나의 자료 뒤에 여러 개의 자료가 존재 할 수 있음 - 자료들간의 전후관계가 1:다 또는 다:다