javascript 로 구현해보기
class Node {
constructor(element) {
this.element = element;
this.next = null;
}
}
class LinkedList {
constructor() {
this.head = new Node("head");
}
insert(newElement, item) {
let newNode = new Node(newElement); //새로운 노드 생성
let current = this.find(item); // 삽입할 위치의 노드 찾기
newNode.next = current.next; // 찾은 노드가 가리키는 노드를 새로은 노드가 가리키기
current.next = newNode; // 찾은 노드는 이제부터 새로운 노드를 가리키도록 하기
}
find(item) {
let currNode = this.head; // 1.현재위치를잡고
while (currNode.element !== item) {
currNode = currNode.next;
}
return currNode;
}
toString() {
let array = [];
let currNode = this.head;
while (currNode.next !== null) {
array.push(currNode.next.element);
currNode = currNode.next;
}
return array;
}
}
let linkedList = new LinkedList();
linkedList.insert("A", "head");
linkedList.insert("B", "A");
console.log(linkedList.toString());
'프로그래밍 > algorithm' 카테고리의 다른 글
[알고리즘] 배열중간삽입 - Linked List를 알기위한 사전단계 (0) | 2024.11.10 |
---|---|
[알고리즘] 피보나치 수열 - dp를 알기위한 사전단계 (3) | 2024.11.09 |
[알고리즘] Hash (해쉬)이란 (0) | 2024.02.12 |
[알고리즘] Greedy Algorithm (탐욕알고리즘) 이란 (1) | 2024.02.12 |
[알고리즘] DFS (깊이 우선탐색)이란 (1) | 2024.02.11 |