자료구조(Data Structure)란?
자료구조란 말 그대로 자료를 담는 구조입니다. 다만 단순히 공간만을 말하는 것이 아니라 그 자료를 관리 및 연산하는 것까지 포함해 자료구조로 봅니다. 즉, 자료구조란 데이터를 저장하고 관리하는 방식, 방법이라고 볼 수 있습니다.
외부에서 입력된 자료(데이터)는 사용하기 위해서 저장 공간이 필요합니다. 그리고 그 자료를 필요에 따라 읽거나 쓰고, 삽입하거나 삭제하고, 수많은 입력 데이터 중 원하는 데이터를 탐색하는 등의 연산을 합니다. 자료구조란 결국 이 저장공간과 지원되는 연산들이라고 볼 수 있습니다. 지원되는 연산에 따라 다양한 자료 구조가 있으며 적절한 자료구조를 사용하는 것은 보다 나은 알고리즘을 사용할 수 있게 만듭니다.
자료구조는 크게 선형(Linear) 자료구조와 비선형(NonLinear) 자료구조로 나뉩니다. 오늘은 이 선형 자료구조와 비선형 자료구조에 대해 정리해보았습니다.
선형(Linear) 자료구조
- 선형 자료구조는데이터가 인접하여 순서대로 배열되는 구조로 쉽게 말하면 하나의 자료에 하나의 자료가 연결되어 존재하는 것을 의미합니다. 선형 구조는 순차적으로 데이터가 연결되어 있기 때문에 단일 레벨로 구성되어 있습니다.
- 선형 자료구조의 예로는 배열, 연결리스트, 스택, 큐, 데크 등이 있습니다. 그 중 배열과 리스트가 구현적으로 다른 자료 구조이며 스택, 큐, 데크는 배열이나 리스트에 추가적인 삽입, 삭제 조건이 붙어 구현되는 방식입니다. 배열과 리스트의 경우는 자료의 삽입 및 삭제가 어느 위치에서든지 이뤄지지만 스택, 큐, 데크와 같은 경우엔 자료의 삽입의 삭제가 정해진 위치에서만 이뤄집니다.
비선형(NonLinear) 자료구조
- 비선형 자료구조는 순서대로 배열되지 않고 하나의 자료에 여러 개의 자료가 존재할 수 있는 것을 의미합니다. 인접한 자료들 간에 1 : N 또는 N : N 관계로 배치됩니다. 또한 자료들간에 순서 관계가 중요하지 않고 계층적 구조 또는 연결 구조가 중요합니다.
- 비선형 자료구조의 예로는 트리, 그래프 등이 있습니다. 그래프는 노드와 그 노드를 연결하는 간선을 하나로 모아놓은 구조이며 트리는 그래프의 한 종류로 계층적 구조가 뚜렷합니다.