: 컴퓨터에 데이터를 구성하고 저장하는 방식적절한 자료구조를 사용하는 것은 메모리를 효율적으로 사용할 수 있게하고, 저장된 데이터에 대한 작업을 보다 빠르고 효율적으로 처리할 수 있게 한다.: 동일한 데이터 타입의 아이템들을 저장할 수 있는 고정된 크기의 자료구조ex)
: 동일한 데이터 타입의 아이템들을 저장할 수 있는 고정된 크기의 자료구조고정된 크기를 가지며 일반적으로는 동적으로 크기를 늘릴 수 없다. (하지만 JavaScript, Phython, Ruby와 같은 대부분의 스크립트 언어는 동적으로 크기를 늘리고 줄일 수 있도록 만
스택 (Stack) : 마지막에 들어온 요소가 먼저 나가는 LIFO(Last In First Out) 자료구조 스택의 연산 스택의 기본적인 연산으로는 push와 pop이 있다. Push : 스택의 맨 위에 요소를 추가한다. Pop : 맨 위에 있는 요소를 삭제하고 반
해시 테이블(Hash Table) : 키와 값을 받아서, 키를 해싱(Hashing)하여 나온 index에 값을 저장하는 선형 자료구조 해시 함수(Hash Function) : 입력받은 값을 특정 범위 내 숫자로 변경하는 함수 해시 테이블의 연산 Insert, Sear
: 정점(vertex)과 정점 사이를 연결하는 간선(edge)으로 이루어진 비선형 자료구조그래프는 정점 집합과 간선 집합으로 표현할 수 있다.정점 : 노드(node)라고도 하며, 데이터가 저장되는 그래프의 기본 원소간선 :정점 간의 관계를 나타내는 정점을 이어주는 선진
: 정점을 가리키는 간선이 하나밖에 없는 구조를 가지고 있는 방향 그래프의 일종루트 정점을 제외한 모든 정점은 반드시 하나의 부모 정점을 가진다.정점이 n개인 트리는 반드시 n -1개의 간선을 가진다.루트에서 특정 정점으로 가는 경로는 유일하다.: 각 정점이 최대 2개
: 이진 트리(Binary Tree) 형태를 가지며, 우선순위가 높은 요소를 루트에 두고 먼저 나가게 하기 위해 요소가 삽입, 삭제될 때 바로바로 정렬되는 특징이 있다.우선순위가 높은 요소가 먼저 나가는 특징을 가진다.루트가 가장 큰 값이 되는 최대 힙(Max Heap
반드시 정렬이 되어있어야 사용할 수 있다.배열 또는 이진 트리를 이용하여 구현할 수 있다.O(log N)의 시간 복잡도로 탐색 속도가 상당히 빠르다.이진 탐색을 위한 이진 트리로, 왼쪽의 서브트리는 루트보다 작은 값이 모여있고, 오른쪽의 서브트리는 루트보다 큰 값이 모
: 문자열을 저장하고 효율적으로 탐색하기 위한 트리 형태의 자료 구조검색어 자동완성, 사전 찾기 등에 이용된다.문자열을 탐색할 때 단순하게 비교하는 것보다 효율적으로 찾을 수 있다.L이 문자열의 길이일 때 탐색, 삽입은 O(L)만큼 걸린다.보통 문자열을 탐색할 때 문자