#선형 자료구조 ##Array
- 하나의 type을 가진다.
- 배열 선언 시 할당된 메모리를 변경할 수 없다.
- index로 이루어져 모든 배열에 접근이 용이하다.
-- ##ArrayList
- 레퍼런스타입의 데이터를 저장할 수 있다.(여러 type의 데이터 저장가능)
- 메모리가 유동적이다.
- null값을 허용한다.
- 내부적으로 자료를 배열형태로 가지고있어, 데이터의 추가/삭제를 할 경우 임시배열을 작성하여 데이터를 이동한다.
- (따라서 대량의 추가/삭제 시 퍼포먼스가 떨어진다)
- Array와 같이 index가 있어 필요한 데이터에 접근이 용이하다.
--
##LinkedList
- 다음 노드의 주소값과 현재 노드의 데이터 값을 가지고있다.
- 데이터의 추가/삭제가 노드의 위치정보 수정만으로 가능하기 때문에 유용하다.(연결이 끊긴 노드는 가비지 컬렉터가 수거해간다.)
- 데이터를 찾을 때 처음부터 찾아나가야하기 때문에 검색이 느리다.
--
##Queue
- 먼저 들어온 데이터가 먼저 나가는 구조(First In First Out)
- 서비스를 받는 대기열에 주로 사용한다(은행 대기번호 등)
- 응급실에서 위급한 환자를 먼저 치료하듯이 우선순위 큐라는 개념이 있다.
--
##Stack
- 먼저 들어온 데이터가 나중에 나가는 구조(Last In First Out)
- 택시의 동전통과 같이 먼저 넣은 게 마지막에 나오는 구조
-- #비선형 자료구조 ##트리
- 노드와 간선으로 구성되어있고, 사이클이 없는 구조
- 이진트리, B-트리 등이 있다.
--
##그래프
- 트리와 비슷하나, Root가 없다.
- 노드와 간선, 그리고 사이클로 이루어 져 있다.