자료구조는 컴퓨터 과학에서 자료의 효율적인 접근 및 수정을 할 수 있도록 컴퓨터에 자료를 조직, 관리, 저장하는 방법이다. 더 정확히 말해, 자료구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다.
https://ko.wikipedia.org/wiki/%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0
자료값을 사용하기 위해서 True/False, 정수, 실수, 문자 및 문자열과 같이 컴퓨터가 기본적으로 제공하는 자료형
자료를 구성하는 데이터를 순차적으로 나열시킨 형태
자료들간의 관계가 1:1인 자료
하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 것을 의미
계층구조나 망구조를 갖는 자료구조로서 트리(Tree)와 그래프(Graph)가 있다.
서로 관련있는 필드(Field)로 구성된 레코드(record) 집합인 파일에 대한 자료구조로 보조 기억장치에 데이터가 실제로 기록되는 형태
메모리에 한번에 올릴 수 없는 대용량을 다룬다.
순차적 파일구조(sequential file structure), 색인 파일구조(indexed sequential file structure), 직접파일(direct file) 등이 있다.
자료 자체의 형태, 그 자료의 연산을 수학적으로만 정의한 것.
Ex ) 스택 -> 추상적 자료형에서는 pop, push, empty, size 연산 정도를 정의할 수 있다. 하지만 스택이 내부적으로 배열인지 연결리스트로 구현되는지와 같은 세부적인 형태는 추상적 자료형에서 다루지 않음
예) 집합, 리스트, 스택, 큐, 트리
자료구조와 차이점
조금이라도 구현방법이 있다면 자료구조 !!
스택, 큐 -> 추상적 자료형
콜 스택, 배열, 연결리스트 -> 자료구조
추상적 자료형과 자료구조가 같은 이름을 갖는 경우가 많아서 헷갈릴수도 ...
따라서 자료구조는 추상적 자료형이 정의한 연산들을 구현한 구현체이다.