리스트는 자료를 순서대로 저장하는 자료구조이다. 리스트를 구현하는 방법에는 배열을 이용하거나 포인터를 이용하여 리스트를 구현할 수 있다. 기본적인 기능으로는 리스트 생성, 원소 추가, 원소 반환, 원소 제거(리스트 초기화), 리스트 삭제로 볼 수 있다. C언어의 경우 리스트를 지원하지 않는 대신 배열을 지원한다. 즉, 리스트를 사용하려면 직접 만들거나 라이브러리를 사용해야 한다.
배열은 인덱스와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다. 일반적으로 배열에는 같은 종류의 데이터들이 순차적으로 저장되며, 값의 번호가 곧 배열의 시작점으로부터 값이 저장되어 있는 상대적인 위치가 된다. 연결 리스트보다 탐색의 시간 복잡도(O(1))가 좋고 구현이 간단하지만 삽입이나 삭제 시 데이터를 옮겨주는 작업이 필요하므로 시간 복잡도(O(N))가 좋지 않다.