[선형] Hash Table
·
CS/Data Structure
❒ Description선형 자료 구조 중 하나인 Hash Table의 특징, 충돌 로드 팩터 등등 해시 테이블에 대해서 자세히 알아보자.  ❒ 해시, 해시 함수 그리고 해시 테이블해시 테이블은 키를 값에 매핑할 수 있는 구조인 연관 배열 추상 자료형을 구현한 자료구조이다.가장 큰 특징은 대부분의 연산이 시간 복잡도 O(1)이라는 점이다. 해시는 어떤 길이의 임의 데이터를 고정 길이의 데이터로 매핑하는 것을 말한다.해시 함수는 임의의 크기의 입력 데이터를 고정된 크기의 해시 값으로 변환하는 함수입니다. 해시 테이블을 인덱싱하기 위해 해시 함수를 사용하는 것을 해싱이라고 하며, 해싱은 정보를 가능한 빠르게 저장하고 검ㅅ색하기 위해 사용하는 중요한 기법 중 하나이다. 해시 함수의 특징은 입력되는 데이터가 뭐..
[선형] Doubly-Linked List
·
CS/Data Structure
❒ Description이중 연결 리스트(Doubly-Linked List )에 대해서 알아보자.   ❒ Doubly-Linked List 실제 자바에서 제공하는 util 패키지의 LinkedList는 DL-List랑 같은 형식으로 되어있다. Singly LinkedList와의 차이라면 단일 연결리스트는 노드에 데이터와 다음 노드를 가리키는 노드 변수만을 갖고 있었다면 DL-List는 하나 더 추가되어 '이전 노드'를 가리키는 변수가 추가 된다. Singly LinkedList에 비해 검색(색인)능력이 좋아진다. 단방향으로 연결 된 Singly LinkedList의 경우 반드시 head부터 시작하여 탐색하였다. 만약 10개의 노드가 있고,9번 째 노드를 탐색하려고 한다면, head부터 탐색했어야 했다.하..
[선형] Priority Queue
·
CS/Data Structure
❒ Description우선순위 큐(Priority Queue)에 대해서 알아보자.   ❒ Priority Queue우선순위 큐(Priority Queue)는 스택과 큐와 같은 추상자료형(ADT)이다.Queue와 거의 비슷하지만, 각 요소들이 우선순위를 갖고 있다는 차이점이 있다.  P-Queue는 여러가지 자료구조로 구현이 가능하다.위와 같이 여러 구현 방식이 있지만, 최악의 경우에도 시간복잡도가 O(logN)인 'Heap(힙)' 자료구조를활용하는 방식이 가장 대표적이다.   ❒ Java에서 Priority Queue 선언하기기본적으로 아래와 같이 P-Queue를 선언한다. 이 경우는 작은 숫자가 우선순위를 가지는 P-Queue이다.PriorityQueue pq = new PriorityQueue(..
[선형] Circular Queue
·
CS/Data Structure
❒ DescriptionDesign Circular Queue 문제를 풀면서 알게된 Circular Queue에 대해 학습한다.긱포기 Circular Queue 포스팅을 참고했다.   ❒ Circular Queue란?Circular-Q는 normal-Q의 확장 버전으로 다음과 같은 특징을 갖고 있다.마지막 요소(rear)와 첫 번째 요소(front)가 연결된 구조를 갖는다.이런 구조로 인해 Buffer-Ring이라고 부르기도 한다.FIFO 원칙을 기반으로 한다.  ❒ Operations of Circular-Q1. FrontQ의 앞쪽 요소를 반환한다.2. RearQ의 뒤쪽 요소를 반환한다.3. enQueue(value)새로운 요소를 삽입할 때 사용한다.새로운 요소는 항상 rear 위치에 자리한다.4. d..
README.md
·
CS/Data Structure
❒ Description자료구조가 무엇이고, 어떤 것들이 있는지 큰 틀을 알아보자.   ❒ 자료구조란?    ❒ 선형자료 구조데이터 구조가 선형이라는 것은 데이터 구조를 구성하는 요소들이 서로 인접해순차적인 방식으로 정렬되어 있음을 뜻한다.1. 배열  2. 연결 리스트연결 리스트는 데이터 엘리먼트의 선형 집합이지만 데이터의 순서가 메모리에 물리적인 순서대로 저장되지 않는다.이는 순서대로 저장되는 배열과의 가장 큰 차이점으로, 대신 동적으로 새로운 노드를 삽입하거나 삭제하기가 간편하며,연결 구조를 통해 물리 메모리를 연속적으로 사용하지 않아도 되기 때문에 관리도 쉽다. 탐색O(n)추가, 삭제, 추출O(1) 자바의 연결 리스트는 이중 연결 리스트이기 때문에 삽입,추출이 양방향으로 가능하다.  3. 스택스택은..