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

const myLinkedList = new SingleLinkedList();
myLinkedList.append(1);
myLinkedList.append(2);
myLinkedList.append(3);
myLinkedList.append(5);
myLinkedList.display();
//
┌─────────┬────────┐
│ (index) │ Values │
├─────────┼────────┤
│ 0 │ 1 │
│ 1 │ 2 │
│ 2 │ 3 │
│ 3 │ 5 │
└─────────┴────────┘
console.log(myLinkedList.find(3));
// Node { value: 3, next: Node { value: 5, next: null } }
myLinkedList.remove(3);
myLinkedList.display();
//
┌─────────┬────────┐
│ (index) │ Values │
├─────────┼────────┤
│ 0 │ 1 │
│ 1 │ 2 │
│ 2 │ 5 │
└─────────┴────────┘
myLinkedList.insert(myLinkedList.find(2), 10);
myLinkedList.display();
//
┌─────────┬────────┐
│ (index) │ Values │
├─────────┼────────┤
│ 0 │ 1 │
│ 1 │ 2 │
│ 2 │ 10 │
│ 3 │ 5 │
└─────────┴────────┘
항상 console.log()만 사용했는데, console.error(), console.table()등이 있다는 사실을 알게되었다.
프로퍼티인 _size와 메서드인 size, 모두 같은 이름인 size로 하면 안되는 것을 알게되었다.
_size와 size() 메서드를 모두 size로 이름을 변경하면, size() 메서드를 호출할 때 this.size가 size() 메서드를 가리키게 된다. 이는 size() 메서드를 무한히 재귀적으로 호출하게 되어 스택 오버플로우 에러가 발생한다.
console.log()는 값을 출력 후, undefined를 리턴하는 것을 알게되었다.