데이터 구조 는 데이터 구조 의 형태 에 따라 선형 데이터 구조 와 비 선형 데이터 구조 로 구분 될 수 있 다 . 선형 데이터 구조 는 하나 의 데이터 뒤 에 하나 의 데이터 만 이 연결 되 는 구조 일 수 있 다 . 선형 데이터 구조 는 리스트 ( List ) , 스택 ( Stack ) , 큐 ( Queue ) , 데크 ( Deque ) 를 포함 할 수 있 다 . 리스트 는 내부 적 으로 순서 가 존재 하 는 일련 의 데이터 집합 을 의미 할 수 있 다 . 리스트 는 연결 리스트 ( Linked List ) 를 포함 할 수 있 다 . 연결 리스트 는 각각 의 데이터 가 포인터 를 가지 고 한 줄 로 연결 되 어 있 는 방식 으로 데이터 가 연결 된 데이터 구조 일 수 있 다 . 연결 리스트 에서 포인터 는 다음 이나 이전 데이터 와 의 연결 정보 를 포함 할 수 있 다 . 연결 리스트 는 형태 에 따라 단일 연결 리스트 , 이중 연결 리스트 , 원형 연결 리스트 로 표현 될 수 있 다 . 스택 은 제한 적 으로 데이터 에 접근 할 수 있 는 데이터 나열 구조 일 수 있 다 . 스택 은 데이터 구조 의 한 쪽 끝 에서 만 데이터 를 처리 ( 예 를 들 어 , 삽입 또는 삭제 ) 할 수 있 는 선형 데이터 구조 일 수 있 다 . 스택 에 저장 된 데이터 는 늦 게 들어갈수록 빨리 나오 는 데이터 구조 ( LIFO - Last in First Out ) 일 수 있 다 . 큐 는 제한 적 으로 데이터 에 접근 할 수 있 는 데이터 나열 구조 로서 , 스택 과 달리 늦 게 저장 된 데이터 일수록 늦 게 나오 는 데이터 구조 ( FIFO - First in First Out ) 일 수 있 다 . 데크 는 데이터 구조 의 양 쪽 끝 에서 데이터 를 처리 할 수 있 는 데이터 구조 일 수 있 다 .