Yeon DevLog

Computer Science 4

[Data Structure/자료구조][CS] 4. Heap

Heap 완전 이진트리로 구성된 자료구조 여러 값들 중 최솟값과 최댓값을 빠르게 찾는 연산에 최적화된 자료구조 느슨한 정렬 상태가 유지됨 중복 값을 허용(이진 탐색 트리에선 중복된 값을 허용하지 않음) 🔎 느슨한 정렬이란? : 완전한 정렬 상태도 아니지만, 정렬이 안되어 있지도 않은 상태 🔎 이진 탐색 트리란? : 정렬된 이진 트리, 부모 노드보다 작은 값은 왼쪽, 큰 값은 오른쪽으로 정렬(반대 가능), 중복 값 허용 안 함 1. 힙(Heap)의 종류 최대 힙(Max Heap) 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리 부모 Node >= 자식 Node 최소 힙(Min Heap) 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진트리 부모 Node 1) { ..

[DataStructure/자료구조][CS] 3. Queue

3. Queue 1. 정의 한쪽 끝에서 삽입이 이루어지고 반대쪽 끝에서는 삭제가 이루어지는 FIFO 형식의 유한 순서 리스트입니다. 2. 연산 연산 JAVA 설명 Enqueue Offer 큐 맨뒤에 요소를 추가 Dequeue Poll 큐 맨앞의 요소를 삭제 Peek Peek Front에 위치한 데이터를 읽음 Front 큐 맨앞에 위치한 인덱스를 읽음 Rear 큐 맨뒤에 위치한 인덱스를 읽음 3. 큐의 종류 ① 선형 큐 일차원 배열 단점 : 값을 계속해서 넣으면 정해진 배열의 사이즈에 도달하게 되고 앞부분이 비더라도 사용하지 못함 소스코드 public class ArrayQueue{ int max = 1000; int front; int rear; int[] q; public ArrayQueue(){ fr..

[Data Structure/자료구조][CS] 2. Stack

2. Stack 📌 정의 : 한쪽 끝에서만 데이터를 넣고 뺄 수 있는 LIFO 형태의 자료구조 1. 연산 push : 스택의 맨 상단에 데이터를 삽입 pop : 스택의 맨 상단 데이터를 삭제 top : 스택의 맨 상단 데이터 isEmpty : 스택이 비어 있는 지를 확인 return boolean isFull : 스택이 가득 차 있는 지를 확인 return boolean 2. 구현 방식 ① Array 장점 : 구현이 쉽고, 원하는 데이터의 접근 속도가 빠르다 Public class Stack{ int top; int maxSize; Object[] stackArr; public Stack(int size){ this.top = -1; this.maxSize = size; this.stackArr = ne..

[Data Structure/자료구조][CS] 1. Array와 List

1. Array 정의 : 연속된 메모리 공간에 순차적으로 저장된 데이터의 모임 💡 value는 배열의 element. 즉, 요소를 뜻하고 [number]은 배열의 index를 의미 2. 특징 선형 자료구조 각 요소는 인덱스를 통해 액세스 할 수 있음 Multi-Dementional Array : 배열 안에 배열 생성 가능 = 다차원 배열 3. 장단점 장점 - 크기 변경이 어렵다 - 삭제 삽입 시, 비용이 많이 든다 - overflow가 생길 가능성이 있다 - 저장 공간이 낭비될 수 있다 단점 - 크기 변경이 어렵다 - 삭제 삽입 시, 비용이 많이 든다 - overflow가 생길 가능성이 있다 - 저장 공간이 낭비될 수 있다 4. 배열을 사용하는 경우 값보다 순서가 더 중요할 때 다차원 데이터를 사용할 때..