전체 글 (92) 썸네일형 리스트형 [Data Structure 기초] Heap Heap (힙) - 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리 - 반 정렬 상태이며 중복 값이 허용된다. Heap 시간복잡도 O(logn) import java.util.PriorityQueue; public class HeapExample { public static void main(String[] args) { // Integer를 저장하는 최소 힙 생성 PriorityQueue minHeap = new PriorityQueue(); // 요소 추가 minHeap.offer(5); minHeap.offer(2); minHeap.offer(8); minHeap.offer(1); // 최소값 확인 int minValue = minHeap.peek(); System.out.pr.. [Data Structure 기초] Deque Deque(덱 혹은 데크) - 양쪽에서 삽입과 삭제가 모두 가능한 자료구조 - 두 개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생시킬 수 있다. - 큐와 스택을 합친 형태로 생각할 수 있다. Stack 시간복잡도 삽입 : O(1) 삭제 : O(1) 탐색 : O(1) 연산 addFirst() 맨 앞에서 데이터를 삽입. 용량을 초과하는 경우 Exception 발생 offerFirst() 맨 앞에서 데이터를 삽입. 용량을 초과하는 경우 false 리턴 addLast() 맨 뒤에서 데이터를 삽입. 용량을 초과하는 경우 Exception 발생 offerLast() 맨 뒤에서 데이터를 삽입. 용량을 초과하는 경우 false 리턴 removeFirst() 맨 앞에서 데이터를 삭제. 비어있다면 Exception .. [Data Structure 기초] Linked List Linked List (연결 리스트) - 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조. - 데이터를 담고 있는 노드들이 연결되어있는데, 노드의 포인터가 이전이나 다음의 노드와의 연결을 담당하게 된다. - 키와 값은 모두 객체이다. 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없다. - 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치된다. - 실제 데이터를 저장시킬 때는 Node 타입의 배열에 저장된다. HashMap에 선언된 Node 타입 변수 및 클래스이다. Hashmap 시간복잡도 접근, 탐색 : O(n) 추가 , 삭제 : O(1) 연산 void addFirst(Object obj) 맨 앞에 객체(ob.. 이전 1 ··· 14 15 16 17 18 19 20 ··· 31 다음