JS Linked List 구현 연습

타래·2023년 9월 24일
0

Linked List란?

위 사진과 같이, 노드들이 서로 연결되어있는 자료구조입니다.
참고
(사진 출처: GeeksforGeeks)


구현


확인

const myLinkedList = new SingleLinkedList();
myLinkedList.append(1);
myLinkedList.append(2);
myLinkedList.append(3);
myLinkedList.append(5);
myLinkedList.display();
// 
┌─────────┬────────┐
 (index) │ Values │
├─────────┼────────┤
│    01    │
│    12    │
│    23    │
│    35    │
└─────────┴────────┘

console.log(myLinkedList.find(3));
// Node { value: 3, next: Node { value: 5, next: null } }

myLinkedList.remove(3);
myLinkedList.display();
// 
┌─────────┬────────┐
 (index) │ Values │
├─────────┼────────┤
│    01    │
│    12    │
│    25    │
└─────────┴────────┘

myLinkedList.insert(myLinkedList.find(2), 10);
myLinkedList.display();
//
┌─────────┬────────┐
 (index) │ Values │
├─────────┼────────┤
│    01    │
│    12    │
│    210   │
│    35    │
└─────────┴────────┘

후기

  1. 항상 console.log()만 사용했는데, console.error(), console.table()등이 있다는 사실을 알게되었다.

  2. 프로퍼티인 _size와 메서드인 size, 모두 같은 이름인 size로 하면 안되는 것을 알게되었다.
    _sizesize() 메서드를 모두 size로 이름을 변경하면, size() 메서드를 호출할 때 this.sizesize() 메서드를 가리키게 된다. 이는 size() 메서드를 무한히 재귀적으로 호출하게 되어 스택 오버플로우 에러가 발생한다.

  3. console.log()는 값을 출력 후, undefined를 리턴하는 것을 알게되었다.

0개의 댓글