[TIL] Data Structure, 스택&큐

ytwicey·2020년 10월 27일
0

TIL

목록 보기
1/23
post-thumbnail

Data, 자료란?

문자, 소리, 사진, 영상 등의 형태로 된 의미단위
자료는 잘 정리하면 정보가 된다.(그래서 미국에서 9,11 이후부터 데이터를 엄청 수집하고 있다고(카더라))

Data Structure, 자료 구조란?

아주 쉽게 말하자면 자료들을 저장/사용하는 방법
옷장 같은 경우라고 생각하면 쉽다. 옷장에 옷을 어떻게 정리하느냐에 따라서 찾는데 걸리는 시간, 정리하고 꺼내 입는 방법 등이 달라진다. 데이터도 빡시게 정리하면 나중에 찾아 입는게 편함!

자료구조 종류

  • Stack
  • Queue
  • Hash Table
  • Linked List
  • Graph
  • Tree

1. Stack, 스택


<그림> 이 자료의 출처는 여기

1.1 Stack의 정의

후입선출 하는 자료 구조. 나중에 들어간 것이 먼저 나오는 구조를 의미한다.
그러나 이렇게 말하면 난 잘 모르겠어서, 무조건 돈 무더기를 예로 든다.

...(보기만 해도 행복)
이 돈 무더기에서 가장 밑에 있는 돈 뭉치 가져갈 사람? 없을거다.
위에 있는거 가져가는게 빠른데 뭣하러 아래 있는 걸 벽돌빼듯이 가져가나.

보통 스택에 자료를 넣고 뺄 때에는 자바스크립트에서는 배열의 메소드인 push()와 pop()을 이용해서 구현한다.

1.2 Stack의 실생활 예제

  • Undo, 되돌리기

1.3 시간복잡도 (Time Complexity)

Big O를 기준으로
access와 search의 경우에는 O(n)
insertion과 delete를 기준으로는 O(1)


2. Queue, 큐

2.1 Queue, 큐의 정의

어린이날 에버랜드 입장 줄과 같다고 생각한다.(나의 생각)

스택과는 다르게 선입선출 하는 자료구조. 일상생활의 대부분이 이런 구조형태를 가지고 있다. 큐에 자료를 넣을 때는 enqueue, 자료를 뺄 때는 dequeue라고 하며, 마찬가지로 자바스크립트에서는 이를 배열의 메소드인 push()와 shift()로 구현이 가능하다.

2.2 실생활 예제

  • 프린트 대기열 (내가 생각한 건 고작 이만큼....)
  • node js 런타임에서 이벤트 큐(가 있다고 한다.)
  • 더 있는데 내가 이해를 못했....ㅠㅠ(메세지 큐, 너비우선탐색... 등)

2.3 시간복잡도 (Time Complexity)

스택과 상동


아직 벨로그가 익숙하지 않다. 그래도 꾸준히 쓴다는데 의의를 두고 써봐야지.

profile
always 2B#

0개의 댓글