[자료구조] 스택(Stack) | javascript
[자료구조] 스택(Stack) | javascript
📋 [ 자료구조 ] 시리즈 몰아보기 (4)
📚 스택(Stack)
데이터를 집어넣을 수 있는 선형(linear) 자료형으로 선입후출의 구조를 가진다. ctrl+Z와 같이 이전 작업을 취소하는 기능이 요구될 때 사용된다.
구현해야 할 기능은 다음과 같다.
push(item): stack에item을삽입한다.pop(): stack의꼭대기에 위치한 원소를제거한다. 즉 가장마지막으로 push한 원소가 제거된다.peek(): stack의꼭대기에 위치한 원소의 값을출력한다.clear(): stack을 초기화한다.length(): stack의 크기를 출력한다.
js에서는 배열을 이용하여 간단히 구현 가능하다.
| 1 | let store = []; |
| 2 | let top = 0; // stack의 index값을 대표하는 변수 |
- push(item) : store.push(item)
- pop() : store.pop()
- peek() : return store[top - 1]
- clear() : store.splice(0);
- length() : return top
🖥️ 소스코드
| 1 | const Stack = () => { |
| 2 | let store = []; |
| 3 | let top = 0; |
| 4 | |
| 5 | return{ |
| 6 | push(item) { |
| 7 | store.push(item); |
| 8 | top++; |
| 9 | }, |
| 10 | pop() { |
| 11 | store.pop(); |
| 12 | top--; |
| 13 | }, |
| 14 | peek() { |
| 15 | return store[top-1]; |
| 16 | }, |
| 17 | clear() { |
| 18 | store.splice(0); |
| 19 | top = 0; |
| 20 | }, |
| 21 | length() { |
| 22 | return top; |
| 23 | } |
| 24 | }; |
| 25 | }; |
# 자료구조
# JS
# javascript
# 스택
# Stack
👨💻 관련 포스트
[자료구조] 큐(Queue) | javascript
[자료구조] 큐(Queue) | javascript
javascript로 이해하는 자료구조 [큐(queue)] : 큐(queue)는 데이터를 입력할 수 있는 선형 자료형으로 선입선출의 구조를 가진다. 버퍼링과 같은 기능에서 요구되는 자료형이다. javascript에서는 배열을 이용해 손쉽게 구현할 수 있다.
2023-04-20
[자료구조] 덱(Deque) | javascript
[자료구조] 덱(Deque) | javascript
javascript로 이해하는 자료구조 [덱(deque)] : 덱(deque)은 스택(stack)과 큐(queue)를 합친 자료구조로 head, tail 구분 없이 양방향에서 자료를 입출력 할 수 있는 자료형이다. javascript에서는 배열을 이용해 손쉽게 구현할 수 있다.
2023-04-21
[자료구조] 연결리스트(linked_list) | javascript
[자료구조] 연결리스트(linked_list) | javascript
javascript로 이해하는 자료구조 [연결리스트(linked-list)] : 연결리스트(linked-list)는 리스트의 일종으로 노드(node)와 데이터가 포인터(pointer)를 가지고 한 줄로 이어져있는 형태를 띈다. 자료의 추가 및 삭제 시간복잡도가 O(1)이나 다른 자료형보다 저장공간을 많이 차지하는 단점이 있다.
2023-04-25
💡 로그인 하지 않아도 댓글을 등록할 수 있습니다!