Yeon DevLog

DataStructure 3

[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..