그림처럼 추가 하거나 삭제하는데 매우 용이하다.
종류 | 크기 | 참조 | 수정 | 공간복잡도 | 시간복잡도 |
---|---|---|---|---|---|
배열 | 고정적이다. | 좋다 | 안좋다 | 좋다 | O(1) |
연결리스트 | 동적이다. | 안좋다 | 좋다 | 안좋다 | O(n) |
const recur = (num) => {
if (num === 0) return num;
return num + recur(num - 1);
};
try {
console.time(recur)
recurRes = recur(50000);
console.timeEnd(recur)
} catch (error) {
console.error(error);
};
Method name | params | rule | description |
---|---|---|---|
Push | push(Stack, Element); | 데이터 삽입 | 스택의 가장 윗 부분에 추가 |
Pop | pop( Stack ) | 데이터 제거 | 스택의 가장 윗 부분 제거 |
Peek | peek( Stack ) | 데이터 참조 | 스택의 가장 위에 있는 항목 반환 |
IsEmpty | isEmpty() | 비어있는지 확인 | 스택이 비어있다면 true 반환 |
연결리스트 및 스택 등의 동작
https://visualgo.net/en/list
연결리스트의 동작
https://antoniosarosi.github.io/Linked-List-Visualization/
기본적인 구조는 이해가 되었으나, 이것들이 현업에서 어떻게 쓰이게 될지 궁금하다.