자료구조(data structure)란 데이터를 효율적인 집합으로 만들어 저장하고 사용하는 방법을 정의한 것이다.
자료 구조의 종류로는 가장 친숙하게 사용하는 배열부터, 연결리스트, 스택, 큐 등이 있으며 이들의 구조에 따라 세부적으로 나눈다. 자료구조의 분류는 아래 그림을 참조하면 된다.
프로그래밍을 하다보면 많은 데이터를 다룬다. 출석부 프로그램을 만든다면 학생들의 이름, 출석여부를 데이터로 받을 것이고, 끝말잇기 게임을 만든다면 입력받은 단어가 데이터가 된다.
처음 프로그래밍을 시작했을 때는 비슷한 유형의 데이터만 많이 받아서 배열로 대부분 처리를 가능했었다. 하지만 데이터가 방대해지고 복잡해질수록 가장 효율적으로 데이터를 저장하고 사용하는 방법이 필요해졌다.
각 상황에 맞는 자료구조를 선택하면 더 효율적으로 프로그램을 작성할 수 있으므로 효율적인 데이터관리를 위해 자료구조를 사용한다.