자료구조의 개념

자료구조의 정의

자료구조의 분류

추상 자료형(자료, 자료형 / 추상화와 추상 자료형)

알고리즘(알고리즘의 표현, 순서도와 의사 코드, 알고리즘의 성능 분석)

 

자료구조는 왜 필요한가?

자료구조는 컴퓨터 프로그래밍에 있어서 가장 기초적인 학문분야로 인식되고 있다. 기초 공사와 마찬가지로 컴퓨터 프로그램이 효율적이고 안전하게 동작하기 위해서 반드시 필요한 프로그램의 골격에 해당한다.

프로그램의 크기가 작거나 혹은 대형 프로젝트의 초기 단계에서는 기초가 얼마나 튼튼한지가 눈에 띄지 않고 중요도가 떨어지지만, 프로그램의 크리가 점점 커지거나 혹은 대형 프로젝트가 진행되면 될수록 부실한 기초는 프로젝트의 부실을 발생시킨다.

 

자료구조의 정의

컴퓨터 프로그램은 컴퓨터에 의해서 실행되는 명령어들의 집합이다. 또한 명령을 수행하기 위해 내부적으로 여러 자료를 저장한다. 즉, 하나의 프로그램이 정상적으로 동작하려면, 내부적으로 자료를 저장하고 있을 뿐 아니라 이러한 자료를 처리하기 위한 명령어들의 집합을 가지고 있어야 됨을 알 수 있다.

자료구조는 컴퓨터에 자료를 효율적으로 저장하는 방식을 말한다. 즉, 효율적인 자료구조는 컴퓨터의 메모리에 저장되는 자료를 보다 효율적으로 저장하여, 컴퓨터 프로그램을 실행하는 데 필요한 메모리를 절약할 뿐 아니라, 프로그램 수행 시간을 최소화하는 기능을 수행한다. 따라서 프로그램의 실행 시간(Time Complexity)은 효율적일 뿐아니라 저장 공간(Space Complexity)도 효율적일 것이다.(필요한 메모리가 적고, 특정 기능을 실행하는 데 걸리는 시간이 짧아진다.)

컴퓨터의 명령 자체의 효율성을 증가시키기 위한 절차(방법)를 보통 '알고리즘'이라고 하는데, 효율적인 알고리즘이 가능하기 위해서는 먼저 효율적인 자료구조가 선행되어야 한다.