1. Stack

스택은 위의 그림과 같이 처음 들어간 요소가 마지막에 나오는 특징(FILO)을 가지고 있습니다.
빈 stack에 value가 차곡차곡 순서대로 쌓이고, value를 제거할 때에는 가장 마지막에 쌓였던 것부터 제거됩니다.
구현방법에는 배열을 사용하는것과 연결리스트를 사용하는 것 두가지가 있습니다.
두가지 방법의 장단점은 다음과 같습니다.
1) 배열로 구현하였을 때
(장점 ) 구현이 쉽다.
원하는 데이터의 접근 속도가 빠르다.
(단점) 데이터 최대 개수를 미리 정해야 한다.
데이터의 삽입과 삭제에 있어 매우 비효율적이다.
2) 연결 리스트로 구현하였을 때
(장점) 데이터의 최대 개수가 한정되어 있지 않다.
데이터의 삽입 / 삭제가 용이하다.
(단점) 한번에 원하는 데이터에 접근이 불가능하다.
$ Stack의 method와 property
method
- push() : 스택에 데이터를 쌓습니다.
- pop() : 스택의 최상위 값을 가져옵니다.
- isEmpty() : 스택이 비었는지를 확인합니다.
- peek() : 마지막 위치(top)에 해당하는 데이터를 반환합니다.
- printStack() : 스택의 모든 요소가 연결된 문자열을 반환합니다.
property
- top : 데이터 삽입/삭제하는 위치
- maxSize : 배열의 최대크기
- stackArray : 배열
- Node : 스택을 구성하는 요소
2. Queue

큐는 스택과는 반대로 처음 들어간 요소가 처음으로 나오는 특징(FIFO)을 가지고 있습니다.
빈 queue에 value가 차곡차곡 쌓이지만 value를 제거할 때에는 가장 먼저 쌓였던 것부터 제거됩니다.
스택과 마찬가지로 배열과 연결리스트를 이용하여 구현할 수 있습니다.
$ Queue의 method와 property
method
- enqueue() : queue head부터 tail 방향으로 하나씩 순서대로 쌓아준다.
- dequeue() : queue head부터 tail 방향으로 하나씩 제거해준다.
- front() : queue front 데이터를 리턴한다
- isEmpty() : queue에 아무것도 없는경우 true, 아닌 경우 false를 리턴
- printQueue() : queue의 모든 요소를 반환합니다.
property
- locaCount : queue에 쌓인 데이터의 개수
- head : 가장 앞부분에 있는 데이터
'컴퓨터 공학 기초지식' 카테고리의 다른 글
Time Complexity (0) | 2020.01.02 |
---|---|
Advanced Data Structure (0) | 2019.12.30 |
Basic information of Programming (0) | 2019.12.27 |
Jest와 Prettier (0) | 2019.12.26 |
Lint 와 Test (0) | 2019.12.26 |