자료구조의 역할
- 컴퓨터 프로그래밍에 있어서 가장 기초적인 학문분야
- 컴퓨터 프로그램의 기본 골격
- 프로그램이 효율적이고 안전하게(죽지않게) 동작하기 위해서 반드시 필요
간과하기 쉬운 경우
- 프로그램의 크기가 작은 경우
- 대형 프로젝트의 초기 단계 ---> 구조적 결함 발생
자료구조란?
컴퓨터에 자료를 효율적으로 저장하는 방식
- 메모리(저장 공간) 절약(Space Complexity)
- 프로그램 수행(실행) 시간 단축(Time Complexity)
프로그램의 수행시간 혹은 저장 공간을 고려한 자료구조의 설계
--> 프로그램이 어떻게 사용되는지에 따라 결정
(프로그램의 목적 및 기능에 부합하는 자료구조 설계)
ex) 윈도우 탐색기
사전 프로그램
단순구조(primitive, simple) | 선형구조(Linear) | 비선형 구조(non-linear) | 파일구조(file organization) |
정수 | 리스트 | 트리 | |
실수 | 스택 | 그래프 | |
문자, 문자열 | 큐 | ||
멕 |
(1) 단순구조
- 프로그래밍 언어에서 제공하는 기본적인 데이터 타입
- 예) 정수, 실수, 문자와 문자열 등
(2) 선형구조
- 자료들 사이의 앞뒤 관계가 일대일(1 : 1) 인 경우
- 예) 3장의 리스트, 4장의 스택, 5장의 큐와 덱의 등
(3) 비선형구조
- 자료들 사이의 앞뒤 관계가 계층 구조 혹은 망 구조를 가지는 경우
(4) 파일 구조
- 보조기억장치(예를 들어 하드디스크)에 저장되는 파일에 대한 자료구조