자료구조란 컴퓨터가 데이터를 효율적으로 관리(데이터 입력, 수정, 삭제 등)할 수 있도록 관련있는 다수의 데이터를 구조화하는것을 말합니다.
어떤 자료구조를 선택하느냐에 따라 데이터를 다루는데 소요되는 시간과 성능, 데이터가 차지하는 메모리 용량등에서 차이가 날 수 있고 이는 당연히 다루는 데이터의 양이 늘어날수록 그 차이는 더 커집니다.
따라서 데이터의 특성과 데이터를 사용하는 목적에 맞게 적절한 자료구조를 선택한다면 데이터를 다룰 때 성능, 메모리 등 다양한 부분을 최소화 및 최적화할 수 있습니다.
자료구조는 크게 선형 자료구조와 비선형 자료구조 2가지로 나뉘어집니다.
선형 자료구조는 한개의 데이터 뒤에 한개의 데이터가 따라오는 선형구조를 가지고 있습니다.
그래서 내부의 각 데이터들은 1:1의 구조를 가지게 됩니다.
선형 자료구조의 대표적인 예는 스택, 큐, 덱, 배열, 리스트등의 자료구조가 해당됩니다.
비선형 자료구조는 한개의 데이터 뒤에 여러개의 데이터가 따라오는것을 말하며 각 데이터가 1:n 또는 n:n의 관계를 가지게 됩니다.
이는 계층 구조를 표현하기에 적절한 자료구조로 트리와 그래프가 가장 대표적인 비선형 자료구조입니다.