본문 바로가기
부트캠프/백

11.21 자료구조 - Stack, Queue

by 티코딩 2022. 11. 25.

나도모르게 블로깅이 밀렸다. 정신차리고 다시 해야겠다.

 

 

ㅇ 자료구조

데이터의 묶음을 저장하고 사용하는 방법을 정의한 것.

대부분의 자료구조는 문제해결에 특화되어있음.

알고리즘 문제에 자주 사용된는자료구조는  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