Data Structure - GitDeveloperKim/DreamEach GitHub Wiki

스택 (Stack)

push : 맨 마지막 위치에 원소를 넣는다.
pop : 맨 마지막 위치의 원소를 반환한다.

public static Stack stack = new Stack<>(); // declare
stack.isEmpty() // 스택이 비어있는지 확인
stack.pop() // 스택의 끝을 꺼내 반환
stack.size() // 스택 크기 반환 
stack.peek() // 스택을 꺼내지 않고 끝점 확인 
stack.push(x); // 스택에 integer x 푸쉬

큐 (Queue)

Queue q = new LinkedList();
q.add(1);
while(!q.isEmpty) {
    int temp = q.poll();
}

연결 리스트 (Linked list)

  • TBD

이중연결 리스트 (Doubly Linked List)

  • 0-1 bfs에 응용
  • add, put, offer : deque의 first, last 요소 삽입
  • addFirst(E e)
  • addLast (E e)
  • poll() : 제일 앞의 요소를 반환 받고, 요소 제거
  • pollFirst()
  • pollLast()
  • peek() : 제일 앞 요소를 반환 받고 요소를 제거하지 않는다
  • peekFirst()
  • peekLast()
  • get : First, Last에 있는 요소를 반환 받고 요소를 제거하지 않는다
  • getFirst()
  • getLast()

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.LinkedList;

public class Test {
    public static void main(String[] args) {
        Deque deque1 = new ArrayDeque<>();
        Deque deque2 = new LinkedList<>();
    }
}

힙 (Heap) + 우선순위 큐(Priority Queue)

셋 (SET)

  • HashSet
  • 중복된 값을 허용하지 않는다
  • 순서를 보장하지 않는다
  • null 값을 저장할 수 있다
  • 내부적으로 HashMap을 사용하여 데이터 저장
  1. add()
  2. remove()
  3. size()
  4. boolean contains(Object o)
  5. isEmpty()
  6. iterator

백준 2776 암기왕 refer

맵 (MAP)

  • HashMap
  • key와 value의 쌍으로 이루어진 데이터 보관
  • null key와 null value 모두 허용
  • 내부적으로 데이터에 접근할 때 동기화를 보장하지 않는다
  • 데이터의 순서를 보장하지 않는다
  • 중복된 key 값을 허용하지 않지만, 중복된 값은 가질 수 있다
  • 속도가 O(1)로 매우빠르지만 순서가 필요한 경우에 TreeMap을 사용한다 (key기준 정렬) refer
  1. put(key, value) // 입력
  2. get(key) // 출력
  3. remove()
  4. isEmpty()
  5. keySet() : set 객체로 리턴
  6. values() : value를 Collection 객체로 리턴
  7. containsKey(key) : key가 존재하면 true 아니면 false
  8. containsValue(value) : value가 존재하면 true 아니면 false
  9. replace(k, v) : key의 value 인자로 전달된 value로 교체

Sparse Table

이중 우선순위 큐

click

⚠️ **GitHub.com Fallback** ⚠️