자료구조
-
[자료구조] 그래프(Graph)자료구조 2024. 6. 10. 15:54
말하기에 앞서 우선 그래프는 비선형 자료구조이다 비선형자료구조 데이터를 일렬로 구성하지 않고 자료 순서나 관계가 복잡한 자료구조 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태트리와 그래프가 대표적이고 계층적 구조를 나타내기에 적절하다💡그래프란? 여러 개의 노드(node)와 이 노드들을 연결하는 간선(edge) 으로 관계를 표현한 자료구조이다.정확히는 정점(vertex) 간의 관계를 표현한 조직도 이다. 구성 요소노드(node) : 정점(Vertice) 라고도 하는 데이터가 저장되는 그래프의 기본 원소간선(edge) : 노드 간의 관계를 나타내는 선인접 정점(adjacent Vertex) : 간선에 의해 직접 연결되어 있는 정점 ex) 1 노드 기준으로 인접 정점은 0, 2, 3 이다단순 경..
-
[자료구조] 힙(Heap) 이란 뭘까?자료구조 2024. 5. 9. 00:18
힙(Heap) 이란? 힙은 데이터에서 최댓값과 최솟값을 빠르게 찾기 위해 고안된 Complete Binary Tree(완전 이진 트리) 이다 우선순위 큐를 위해 만들어진 자료구조 이기도 하다최댓값과 최솟값을 빠르게 찾아내도록 만들어진 자료구조반정렬 성태를 유지 -> 부무 노드의 키 값이 자식 노드의 키 값보다 항상 크거나 작다이진 탐색 트리와는 다르게 중복된 값이 허용 된다 종류최대 힙 (max heap)부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리key(부모 노드) >= key(자식 노드)최소 힙 (min heap)부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진 트리key(부모 노드) 💡 왜 사용할까?최솟값이나 최댓값을 찾기 위해 배열을 사용하면 반복문..
-
[자료구조] Queue의 구현체 (우선순위 큐)자료구조 2024. 4. 28. 20:11
- 말하기에 앞서 Queue는 interface 형태로 Collection 클래스를 상속하고 있다 - 자료구조 중에서 선형구조인 큐는 일반 큐와 우선순위 큐로 나뉘어진다 선형구조(Linear Structure), 큐(Queue)💡 선형 구조 - 데이터를 저장하기 위한 기본적인 형태로 데이터가 일렬로 나열 되어 있을 뿐만 아니라 데이터 간에 순서가 있고 논리적으로 이어져 있는 구조를 의미한다 💡 큐 - 큐는 선입선출의 특성을 가지고 있다큐에 대해서 좀 더 자세하게 알고 싶으면 아래 포스팅을 확인하면 된다 https://hyeonni.tistory.com/24 Queue란? from javaQueue 란? Queue란? 사전적 의미로는 대기줄이다이러한 사전 적 의미 처럼 queue는 차례대로 처리된..
-
[자료구조] Deque란? from Java자료구조 2024. 4. 27. 15:37
Deque란?- Double-Ended Queue의 줄임말로 큐의 양쪽에서 데이터를 넣고 뺄 수 있는 형태의 자료구조를 의미한다- 다시 말해 기존의 Queue는 한쪽에서 데이터를 넣고 다른 한쪽에서 데이터를 빼는 형태인데 Deque는 둘다 데이터를 넣고 뺄 수 있다는 것이다- Queue와 Stack 을 합쳐 놓은 자료구조라고 생각 하면 된다 - Deque를 이해하려면 일단 Queue를 알아야 한다 - 아래는 Queue를 정리한 포스팅이다 https://hyeonni.tistory.com/24 Queue란? from javaQueue 란? Queue란? 사전적 의미로는 대기줄이다이러한 사전 적 의미 처럼 queue는 차례대로 처리된다큐는 후입선출(LIFO)인 스택과 다르게 선입선출(FIFO)의 형태를..
-
[자료구조] Queue란? from java자료구조 2024. 4. 27. 00:40
Queue 란? Queue란? 사전적 의미로는 대기줄이다이러한 사전 적 의미 처럼 queue는 차례대로 처리된다큐는 후입선출(LIFO)인 스택과 다르게 선입선출(FIFO)의 형태를 가진다선입선출 말 그대로 먼저 들어오면 먼저 나가는 구조이다 특징- FIFO (First In First Out) 구조 - 큐의 한 쪽 끝은 front (앞)로 정하여 삭제 연산만 수행- 다른 한 쪽 끝은 rear 로 정하여 삽입 연산만 수행- 예를 들어 빨대 형태이다 한쪽으로 들어오고 다른 한쪽으로 나간다 사용법, 예제import java.util.Queue;import java.util.LinkedList;Queue queue = new LinkedList(); // T 타입 queue 선언- 일단 java.util.Q..