다양한 자료를 효율적으로 표현, 저장, 처리하여 사용할 수 있도록 하는 것이 '자료구조'이다.
컴퓨터는 알아서 움직이는 것이 아니라 알고리즘대로 움직인다. 그렇기에 그 알고리즘을 짜는 사람의 알고리즘 이해도에 따라 효율성이 달라진다.
ex) 입 닫고 빵이나 먹어 => error
1:1 관계의 구조로 linked list, stack, queue, deque등이 있다.
1:n 혹은 n:n관계로 계층구조나 망 구조를 갖고 있으며 트리, 그래프가 있다.
레코드의 집합인 파일에 대한 자료구조, 데이터가 실제로 기록되는 자료구조이다.
순차파일, 색인 파일, 직접파일이 있다.
0과 1을 표현하는 최소 단위 = 1비트 = 2ⁿ
8비트 = 2니블(4비트) = 1바이트
문자자료도 0과 1로 이루어진 코드로 저장하며 아래와 같은 종류의 코드가 존재한다.
논리값인 True나 False를 표현하는 자료 형식이다.
메모리의 주소를 표현하고 사용하기 위한 자료형식으로 주소를 저장하고 주소연산에 사용한다.
연속적으로 문자를 저장하게 되는데 이때 문자열의 크기를 구분자로 구분하거나 길이를 고정시키면 낭비가 생길 수 있으며 포인터를 사용하면 효율적이다.
[출처] 이지영, 『자바로 배우는 쉬운 자료구조』, 한빛아카데미(2018), p.1-48.