사전적인 의미는 자료(Data)의 집합의 의미하며, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것이다.
자료구조는 다음 그림과 같이 단순 자료구조(Primitive Data Structure)와 복합 자료구조(Non-Primitive Data Structure)로 나누어 진다.
복합 자료구조는 다시 선형 자료구조(Linear Data Structure)와 비선형 자료구조(Non-Linear Data Structure)로 구분된다.
선형 자료구조는 다음 그림처럼 데이터 요소를 순차적으로 연결하는 자료구조로, 구현하기 쉽고 사용하기도 쉽습니다. 배열(Array)과 링크드 리스트(Linked List), 스택(Stack), 큐(Queue) 등이 여기에 해당합니다.
비선형 자료구조는 선형 자료구조와 달리 데이터 요소를 비순차적으로 연결한다. 다음과 같이 한 데이터 요소에서 여러 데이터 요소로 연결되기도 하고, 여러 데이터 요소가 하나의 데이터 요소로 연결되기도 한다.
트리와 그래프가 바로 여기에 해당한다. 비선형 자료구조는 선형 자료구조와 달리 데이터 요소를 비순차적으로 연결한다.
자료구조의 동작 방법을 표현하는 데이터 형식으로 자료구조가 갖춰야 할 일련의 연산이다.
알고리즘은 어떤 문제를 풀기 위한 단계적 절차를 뜻한다. 알고리즘을 설계한다는 것은 문제 풀이 절차를 설계한다는 의미이고, 알고리즘을 구현한다는 것은 프로그래밍 언어를 이용해서 문제 풀이 절차를 실제로 동작하는 코드로 작성한다는 의미이다.
참고 문서 및 링크