자바 2

[Java] 힙(Heap) 자료구조

힙(Heap) 최솟값, 최댓값을 찾아내는 연산을 빠르게 하기 위해 만들어진 완전이진트리를 기본으로 한 자료구조이다. 완전이진트리는 마지막레벨을 제외하곤 노드들이 다 채워져 있고, 마지막레벨은 왼쪽부터 채워진 트리이다. 최소 힙: 부모노드의 키(key)값이 자식노드의 키값보다 항상 작다. 최대 힙: 부모노드의 키값이 자식노드의 키값보다 항상 크다. 위의 완전이진트리를 배열으로 나타내면 다음과 같다. 부모와 자식 index를 구하기 위해 index는 0이 아닌 1부터 값을 넣어준다. index 0 1 2 3 4 5 6 7 8 9 값 - 1 5 2 16 19 36 7 25 42 루트 노드 : index = 1 부모 노드 : index = index / 2 왼쪽 자식 노드 : index * 2 오른쪽 자식 노드..

STUDY/자료구조 2023.10.23

[자바] 연결리스트(Linked List) 특징과 종류

연결리스트(Linked List) 각 노드가 데이터와 다음 노드를 가리키는 포인터를 가지고 있으며 포인터로 연결되어 있는 자료구조이다. 데이터를 링크로 연결해서 관리하는 자료구조 자료의 순서는 정해져 있지만, 메모리상 연속성이 보장되지는 않음 노드: data와 다음 노드를 가리키는 포인터를 포함한다. 처음 노드는 head, 마지막노드는 tail 장점 데이터공간을 미리 할당할 필요 없음 데이터 추가/삭제 용이 단점 연결구조를 위한 별도 데이터 공간 필요(링크정보 저장) 연결정보를 찾는시간 필요(메모리상 연속되어있지 않아 느림) 데이터 추가, 삭제시 앞뒤 데이터의 연결을 재구성하는 작업 필요 연결리스트의 종류 단일 연결리스트: 각 노드에 다음 노드를 가리키는 포인터가 있다. 양방향 연결리스트: 각 노드에 이..

STUDY/자료구조 2023.10.21