Skip to content

Instantly share code, notes, and snippets.

@sungjaeHong
Last active September 13, 2016 01:11
Show Gist options
  • Save sungjaeHong/8428894f8cdb3d515fc32192c7648185 to your computer and use it in GitHub Desktop.
Save sungjaeHong/8428894f8cdb3d515fc32192c7648185 to your computer and use it in GitHub Desktop.

#선형 자료구조 ##Array

  • 하나의 type을 가진다.
  • 배열 선언 시 할당된 메모리를 변경할 수 없다.
  • index로 이루어져 모든 배열에 접근이 용이하다.

-- ##ArrayList

  • 레퍼런스타입의 데이터를 저장할 수 있다.(여러 type의 데이터 저장가능)
  • 메모리가 유동적이다.
  • null값을 허용한다.
  • 내부적으로 자료를 배열형태로 가지고있어, 데이터의 추가/삭제를 할 경우 임시배열을 작성하여 데이터를 이동한다.
  • (따라서 대량의 추가/삭제 시 퍼포먼스가 떨어진다)
  • Array와 같이 index가 있어 필요한 데이터에 접근이 용이하다.

--
##LinkedList

  • 다음 노드의 주소값과 현재 노드의 데이터 값을 가지고있다.
  • 데이터의 추가/삭제가 노드의 위치정보 수정만으로 가능하기 때문에 유용하다.(연결이 끊긴 노드는 가비지 컬렉터가 수거해간다.)
  • 데이터를 찾을 때 처음부터 찾아나가야하기 때문에 검색이 느리다.

--
##Queue

  • 먼저 들어온 데이터가 먼저 나가는 구조(First In First Out)
  • 서비스를 받는 대기열에 주로 사용한다(은행 대기번호 등)
  • 응급실에서 위급한 환자를 먼저 치료하듯이 우선순위 큐라는 개념이 있다.

--
##Stack

  • 먼저 들어온 데이터가 나중에 나가는 구조(Last In First Out)
  • 택시의 동전통과 같이 먼저 넣은 게 마지막에 나오는 구조

-- #비선형 자료구조 ##트리

  • 노드와 간선으로 구성되어있고, 사이클이 없는 구조
  • 이진트리, B-트리 등이 있다.

--
##그래프

  • 트리와 비슷하나, Root가 없다.
  • 노드와 간선, 그리고 사이클로 이루어 져 있다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment