Data Structure/자료구조란?

자료구조 기초 지식

appmaster 2020. 2. 22. 18:25

자료구조의 역할

- 컴퓨터 프로그래밍에 있어서 가장 기초적인 학문분야

- 컴퓨터 프로그램의 기본 골격

   - 프로그램이 효율적이고 안전하게(죽지않게) 동작하기 위해서 반드시 필요

 

 

간과하기 쉬운 경우

 - 프로그램의 크기가 작은 경우

 - 대형 프로젝트의 초기 단계 ---> 구조적 결함 발생

 

 

자료구조란?

컴퓨터에 자료를 효율적으로 저장하는 방식

 

 - 메모리(저장 공간) 절약(Space Complexity)

 - 프로그램 수행(실행) 시간 단축(Time Complexity)

 

 

프로그램의 수행시간 혹은 저장 공간을 고려한 자료구조의 설계

 --> 프로그램이 어떻게 사용되는지에 따라 결정

        (프로그램의 목적 및 기능에 부합하는 자료구조 설계)

           ex) 윈도우 탐색기

                사전 프로그램 

 

 

단순구조(primitive, simple) 선형구조(Linear) 비선형 구조(non-linear) 파일구조(file organization)
정수 리스트 트리  
실수 스택 그래프  
문자, 문자열    
     

 

(1) 단순구조

  - 프로그래밍 언어에서 제공하는 기본적인 데이터 타입

  - 예) 정수, 실수, 문자와 문자열 등

 

(2) 선형구조

  - 자료들 사이의 앞뒤 관계가 일대일(1 : 1) 인 경우

  - 예) 3장의 리스트, 4장의 스택, 5장의 큐와 덱의 등

 

(3) 비선형구조

  - 자료들 사이의 앞뒤 관계가 계층 구조 혹은 망 구조를 가지는 경우

 

(4) 파일 구조

  - 보조기억장치(예를 들어 하드디스크)에 저장되는 파일에 대한 자료구조