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<>();
    }
}
  • ์ฐธ๊ณ  click

ํž™ (Heap) + ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)

  • ํž™์ด๋ž€? click

์…‹ (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** โš ๏ธ