나도모르게 블로깅이 밀렸다. 정신차리고 다시 해야겠다.
ㅇ 자료구조
데이터의 묶음을 저장하고 사용하는 방법을 정의한 것.
대부분의 자료구조는 문제해결에 특화되어있음.
알고리즘 문제에 자주 사용된는자료구조는 Stack, Queue, Tree, Graph
ㅇ Stack
말 그대로 쌓이는 자료구조다. 정말 간단히 생각해 프링글스 과자 통이라고 생각하면 된다. 가장 먼저 들어간 자료가 가장 나중에 나오는 후입선출(LIFO - Last In First Out) 구조다. 스택구조에서 데이터를 넣는 것은 push, 꺼내는 것은 pop
stack.push(1);
stack.push(2);
stack.push(3);
- - - - - - - - - - -
1 2 3
stack.pop();
stack.pop();
stack.pop();
- - - - - - - - - - -
3 2 1
스택의 특성중 하나는 데이터가 아무리 많아도 한개씩 넣고 뺀다는 것이다. 스택을 사용한 예로는 페이지 앞으로가기, 뒤로가기가 있다.
ㅇ Queue
큐는 줄을 서서 기다린다는 뜻이다. 톨게이트 같은 구조라고 생각하면 쉽다. 선입선출(FIFO - First In First Out) 구조를 가진다.
큐에서 데이터 넣는 것을 enqueue, 빼는것을 dequeue라고하고 각각 add(), poll()사용함.
queue.add(1);
queue.add(2);
queue.add(3);
- - - - - - - - - - - - -
1 2 3
queue.poll();
queue.poll();
queue.poll();
- - - - - - - - - - - - -
1 2 3
큐는 컴퓨터와 연결된 프린터에서 순서대로 인쇄할 때 사용한다.
'부트캠프 > 백' 카테고리의 다른 글
11.24 시간복잡도, Greedy, 구현 (0) | 2022.11.25 |
---|---|
11.22 자료구조-Tree, 그래프, BinarySearchTree(BST), BFS/DFS (0) | 2022.11.25 |
11.18 JSON(미완성) (0) | 2022.11.19 |
11.17 재귀 (0) | 2022.11.18 |
11.15 Thread2 (0) | 2022.11.16 |