자료구조란, 데이터를 조금 더 효율적으로 관리하기 위한 일종의 방법이다.
예를 들어 1000명의 학생 데이터가 있다고 해 보자. 여기서 홍길동 학생의 성적을 조회한다고 생각해보자.
먼저 1000명의 이름 데이터와 홍길동을 하나하나 비교해 보는 방법이 있을 거고,
또는 홍길동 학생의 학년, 반, 학번을 1000명 학생의 학년, 반, 학번 데이터와 비교해 보는 방법이 있을 것이다.
둘 중 더 효율적인 방법은 후자일 것이다. 왜냐하면 전자는 1000번이나 비교해야 하고, 데이터의 양이 많아질수록 더 오랜 시간이 걸릴 것이기 때문이다.
하지만 후자의 경우는 학년 한번, 반 한번 , 학번 한번 , 이렇게 총 3번만 비교하게 되므로, 시간을 더 절약할 수 있는 것이다.
스택과 다르게 모든 요소들이 꼭 붙어 있는 구조이며 인덱스로 데이터를 관리한다.
스택 자료구조는 책상에 책을 쌓아놓고, 그것들을 꺼내 보는 구조와 비슷하다.
먼저 삽입된 자료가 가장 나중에 출력되고, 나중에 삽입된 자료일수록 가장 먼저 출력되는 특성이 있다.
전자를 First In Last Out(FILO), 후자를 Last In First Out(LIFO) 라고 한다.