본문 바로가기

개발공부

자료구조 stack, queue

자료구조란??

자료구조란 쉽게 말해 데이터를 어떠한 가져오는 방식을 말한다.

비유하자면 짱구의 장난감상자에 장난감은 마구잡이로 들어가 있고, 철수의 장난감상자는 장난감이 잘 정리되어있다.

그래서 짱구는 액션가면장난감을 찾고싶지만 상자 안에 어디있는지 몰라 찾는데 오래 걸렸다.

반대로 철수는 쉽게 찾을 수 있었다.

여기서 장난감은 데이터이고 장난감상자가 데이터구조라고 할 수 있다.

즉 데이터구조는 데이터를 효율적으로 저장하고 꺼내기 쉽게 만드는 것으로 생각해 볼 수 있다.

 

이러한 자료구조에 종류에는 여러가지가 있는데 이 중에서 stack과 queue에 대해서 알아본다.

 

 

stack

stack은 뒤로 넣고 뒤로만 뺄 수 있는 자료구조이다.

자바스크립트 배열에서 pop과 push만 쓸 수 있다 생각하면 편하다.

쌓여있는 종이컵처럼 맨 위에 있는 것을 빼서 사용하거나 위에다가 종이컵을 더 올리는 거로 비교할 수 있다.

 

트랙패드로 그려서 구리다...

우리가 함수를 실행시킬 때도 stack 메모리 안에 저장이 되게 된다.
함수 A, B, C를 순서대로 호출시키면 위에 그림처럼 순서대로 쌓이게 되고 위에서부터 다시 C -> B -> A순으로 실행이 된다.

각 함수는 어느정도의 메모리를 가지고 있기 때문에 너무 쌓이게 된다면 에러가 발생되는데 이것이 바로 stack overflow이다.

stack은 stacktop메소드로 마지막 요소를 검색할 수 있다.

 

 

queue

queue는 뒤에서 들어가고 앞에서 빠지는 자료구조이다.

자바스크립트 배열에서 push와 shift 메소드만 있다고 생각하면 편하다.

queue는 맨 처음을 가리키는 head와 끝을 가리키는 rear가 있다.

핫도그는 맛있다.

이렇게 핫도그를 먹기위해 사람들이 줄을 서 있고 맨 뒤에 있는 사람이 rear 맨 앞에서 핫도그를 받는 사람이 head라 할 수 있다.

 

'개발공부' 카테고리의 다른 글

ES6 class와 super  (0) 2020.01.03
시간복잡성(Time Complexity)  (0) 2020.01.02
JS Instantiation Patterns  (0) 2019.12.28
ESLint  (0) 2019.12.26
NVM  (0) 2019.12.23