Backend/Data Structure(7)
-
[자료구조] Heap
🎯Heap1. 힙(Heap) 이란?힙은 완전 이진 트리(complete binary tree)를 기반으로 하는 자료구조로, 모든 노드가 특정 순서 속성을 만족시키는 것이 특징입니다. 이 속성에 따라, 각 노드의 값은 그 자식 노드들의 값보다 크거나 같아야 합니다(최대 힙의 경우) 또는 작거나 같아야 합니다(최소 힙의 경우)2. 힙의 종류최대 힙(Max Heap): 각 부모 노드의 값이 자식 노드의 값보다 크거나 같습니다. 루트 노드에는 힙 내의 최댓값이 위치합니다.최소 힙(Min Heap): 각 부모 노드의 값이 자식 노드의 값보다 작거나 같습니다. 루트 노드에는 힙 내의 최솟값이 위치합니다.3. 힙 구현 방법힙은 일반적으로 배열을 사용하여 구현됩니다. 배열을 이용하면 힙의 트리 구조를 효율적으로 표현..
2024.05.26 -
[자료구조] 연결리스트 (LinkedList)
🎯연결리스트 (LinkedList)1. LinkedList란?LinkedList는 연결 리스트라고 불리며, 각 요소가 노드로 구성되어 있고 각 노드는 다음 노드를 가리키는 참조와 데이터를 포함하는 자료 구조입니다. 배열과 달리, 연결 리스트는 동적으로 크기가 변할 수 있으며, 삽입과 삭제가 배열에 비해 효율적입니다.1.2 LinkedList 종류단일 연결 리스트 (Singly Linked List) 단일 연결 리스트는 각 노드가 다음 노드를 가리키는 하나의 참조(포인터)만을 가지고 있는 가장 기본적인 형태의 연결 리스트입니다. 이 구조에서는 각 노드가 데이터와 함께 다음 노드를 가리키는 참조를 포함합니다. 이중 연결 리스트 (Doubly Linked List) 이중 연결 리스트는 각 노드가 두 개의 참..
2024.05.26 -
[자료구조] HashMap
🎯 HashMap1. HashMapHashMap은 Java에서 가장 많이 사용되는 자료구조 중 하나로, 키와 값의 쌍을 저장하는 데 사용됩니다.키는 객체를 식별하는 데 사용되는 고유한 값이고, 값은 키와 연관된 데이터입니다.HashMap은 키에 대한 빠른 검색 및 접근성을 제공하는 해시 테이블을 기반으로 구현됩니다.1.2 장점빠른 검색 및 삽입 성능동적 크기 조정간단한 사용법메모리 효율성1.3 단점정렬되지 않음비동기화되지 않음 (ConcurrentHashMap 사용 필요)해시 충돌 가능성 (별도 해결 방안 필요)2. 해싱 및 해시 함수해싱은 임의 길이의 데이터를 고정 길이의 데이터로 매핑하는 과정입니다. 이를 수행하는 함수를 해시 함수라고 합니다.해시 함수는 키를 해시 값으로 변환하는 역할을 합니다. ..
2024.05.26 -
[자료구조] 큐 (Queue)
🎯 큐 (Queue) 1. 큐의 개념과 특징큐(Queue)는 선형 자료구조의 일종으로, 선입선출(FIFO) 방식으로 데이터를 처리하는 특징을 가지고 있습니다.쉽게 말해, 먼저 큐에 들어간 데이터가 먼저 나오는 방식을 따릅니다. 마치 줄을 서서 기다리는 사람들처럼,먼저 줄에 선 사람이 먼저 서비스를 받는 것과 비슷하다고 생각하면 됩니다.큐는 다음과 같은 주요 특징을 가지고 있습니다.FIFO 방식: 먼저 들어간 데이터가 먼저 나옵니다.삽입 연산 (enqueue): 데이터를 큐의 끝에 삽입합니다.추출 연산 (dequeue): 큐의 앞에 있는 데이터를 추출합니다.크기: 큐에 저장된 데이터의 개수를 나타냅니다.공백 여부 확인: 큐에 데이터가 하나도 없는지 확인합니다.2. 큐의 장점과 단점장점FIFO 방식으로 데..
2024.05.23 -
[자료구조] 스택 (Stack)
🎯 스택 (Stack) 1. 스택이란 무엇일까요?스택은 LIFO(Last In, First Out) 방식을 기반으로 데이터를 쌓아 관리하는 자료 구조입니다. 쉽게 말해,접시를 쌓듯이 데이터를 차곡차곡 쌓아 올리는 방식이라고 생각하면 됩니다.스택의 가장 큰 특징은 마지막에 들어온 데이터가 가장 먼저 나온다는 것입니다. 마치음식 쟁반에서 가장 위에 있는 음식부터 먹는 것과 같다고 볼 수 있습니다.이러한 특징 때문에 선택적 삽입 및 추출이 불가능하며, 처리 순서가 중요한 작업에 적합하게 활용됩니다.2. 스택의 주요 특징LIFO (Last In, First Out): 마지막에 들어온 데이터가 가장 먼저 나옵니다.선택적 삽입 및 추출 불가능: 이미 저장된 데이터를 건너뛰고 특정 데이터를 삽입하거나 추출할 수 없..
2024.05.23