Algorithm/Data Structure

    [Data Structure] 우선순위 큐(Priority Queue)란?

    1. 우선순위 큐(Priority Queue)의 개념 우선순위 큐(Priority Queue)는 큐(Queue)와 구조가 비슷하다. 다만 다른 점이 있다면 큐(Priority Queue)는 들어온 순서대로 데이터가 나가는 것이 아니라, 우선순위를 정해 우선순위가 높은 순서대로 데이터가 나가게 된다. 우선순위 큐(Priority Queue)는 리스트(List) 또는 힙(Heap)을 이용해 구현이 가능하며 일반적으로 힙(Heap)을 많이 이용한다. 더보기 힙(Heap)이란? 이진 트리 자료구조의 일종으로 항상 루트 노드를 제거한다. 1) 최소 힙(min Heap) - 루트 노드가 가장 작은 값을 가진다. - 즉, 값이 작은 데이터가 우선적으로 제거된다. 2) 최대 힙(max Heap) - 루트 노트가 가장 ..

    [Data Structure] 큐(Queue)란?

    1. 큐(Queue)의 개념 큐(Queue)는 "줄을 서다"라는 의미를 갖고 있으며, 입구와 출구가 모두 뚫려 있는 터널과 같은 형태이다. 사람이 줄을 서서 기다린다는 것처럼 먼저 들어온 데이터가 먼저 나가는 형태의 구조로 LIFO(Last In First Out) 방식인 스택(Stack)과는 달리 FIFO(First In First Out)방식을 가지고 있다. Enqueue는 큐(Queue)에 데이터를 입력하는 동작이고, Dequeue는 큐(Queue)에 데이터를 출력하는 동작이다. 2. 스택(Stack)에서의 오버플로우(Overflow)와 언더플로우(Underflow) - 오버플로우(Overflow) : 큐(Queue)의 크기만큼 데이터가 꽉 차서 데이터를 넣지 못할 때 발생한다. - 언더플로우(Un..

    [Data Structure] 스택(Stack) 사용 예제 (웹 방문 기록)

    자바(Java) 자료구조 중 하나인 스택(Stack)을 이용하여 웹 방문기록을 쌓아놓는 예제이다. [Data Structure] 스택(Stack)이란? 1. 스택(Stack)의 개념 스택(Stack)은 "쌓다"라는 의미로 데이터를 하나씩 쌓아 올린 형태의 자료구조로, 한쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조이다. 스택(Stack) tmdrnr96.tistory.com WebBrowser.class package com.company; import java.util.Stack; class WebBrowser { public Stack back; //이전 방문 기록 public Stack forward; //다음 방문 기록 public WebBrow..

    [Data Structure] 스택(Stack)이란?

    1. 스택(Stack)의 개념 스택(Stack)은 "쌓다"라는 의미로 데이터를 하나씩 쌓아 올린 형태의 자료구조로, 한쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조이다. 스택(Stack) 자료구조를 쉽게 예를 들어보자면, 박스 쌓기를 생각하면 된다. 박스를 아래에서 하나씩 쌓고, 박스를 뺄 때는 마지막에 쌓은 박스부터 다시 순서대로 박스를 빼야 한다는 점을 생각하면 쉽다. 2. 자바(Java) 라이브러리 스택(Stack) 관련 메서드 - pop() : 스택(Stack)의 가장 윗부분에 있는 자료를 제거한다. - push(item) : 스택(Stack)의 가장 윗부분에 item을 추가한다. - peek() : 스택(Stack) 가장 윗 부분에 있는 데이터..