728x90
자료구조를 다시 복습할 겸, 알고리즘 포스팅에 활용도 하기 위해 자바스크립트로 다시 자료구조를 써보려고 합니다. 자료구조의 설명 자체는 기존 링크를 달기로 하고, 구현 방식은 조금 다르게 만들어 보기로 했습니다.
2021.09.03 - [Programming/자료구조] - 연결 리스트 Linked List
class Node {
constructor(data, nextNode = null) {
this.data = data;
this.nextNode = nextNode;
}
}
class LinkedList {
constructor() {
this.head = null;
this.size = 0;
}
insertNode(data) {
const newNode = new Node(data);
let current = this.head;
if (this.size === 0) {
this.head = new Node(data, this.head);
this.size++;
}
else {
while (current.nextNode) {
current = current.nextNode;
}
current.nextNode = newNode;
this.size++;
}
}
searchNode(index) {
let current = this.head;
let count = 0;
while (count < index) {
current = current.nextNode;
count++;
}
return current.data;
}
removeNode(index) {
let current = this.head;
let preNode;
let removeNode;
let count = 0;
if (index === 0) {
this.head = this.head.nextNode;
this.size--;
}
else {
while (count < index) {
preNode = current;
current = current.nextNode;
count++;
}
removeNode = current;
preNode = removeNode.nextNode;
this.size--;
}
}
}
https://github.com/Bam-j/algorithm-study/blob/main/study-code/data-structure/linked-list.js
참조
https://www.zerocho.com/category/Algorithm/post/58008a628475ed00152d6c4d
728x90
'Programming > 자료구조' 카테고리의 다른 글
[Javascript] 큐 (0) | 2021.11.18 |
---|---|
[Javascript] 스택 (0) | 2021.11.17 |
그래프 탐색 - 너비 우선 탐색 BFS (0) | 2021.10.09 |
그래프 탐색 - 깊이 우선 탐색 DFS (0) | 2021.10.08 |
그래프 구현2 - 인접 리스트로 그래프 구현하기 (0) | 2021.10.05 |
댓글