자료구조
자료란?
현실 세계에서 관찰을 통해 얻은 사실로 어떤 측정을 통해 얻은 처리되지 않은 단순 value이다.
ex) 온도, 점수, 키…
자료구조란?
컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게하는 자료의 집합으로 각 원소들 사아의 관계가 논리적으로 정의된 일정한 규칙에 의해 나열되며 자료를 효율적으로 처리하기 위해 조직적/체계적으로 표현한 것이다.
자료구조를 사용해야하는 이유
메모리의 용량 절약 및 프로그램 실행 시간 단축을 위해 데이터를 관리하여 효율적으로 사용하기 위함이다.
선택 기준
- 자료의 처리시간
- 자료의 크기
- 자료의 활용 빈도
- 자료의 갱신 정도
- 프로그램 용의성
자료구조의 특징
- 효율성: 문제에 맞는 자료구조를 사용해 효율적으로 처리
- 추상화: 복잡한 자료, 모듈, 시스템등으로 부터 핵심 개녕/기능을 간추려 내는 것으로 어느 시점에 데이터를 어떻게 처리할 것인가에 초점을 둔다.
- 재사용: 다양한 프로그램에서 동작할 수 있다.
자료구조 종류
- 단순 구조: 기본 데이터 타입
ex) int, char, string… - 선형 구조: 자료를 순차적으로 나열 시킨 형태로 자료의 전후관계가 1:1로 이루이져있다.
ex) Array, Linked List, Stack, Queue… - 비선형 구조: 하나의 자료 뒤에 여려개의 자료가 있는 구조로 전후관계가 1:n 또는 n:m으로 이루어져있다.
ex) Graph, Tree - 파일 구조: 서로 관련된 필드로 구성된 레코드의 집합인 파일에 대한 자료구조