>  기사  >  웹 프론트엔드  >  Javascript에서 LinkedList 구현

Javascript에서 LinkedList 구현

王林
王林앞으로
2023-08-24 09:21:051049검색

Javascript 中 LinkedList 的实现

연결된 목록은 일련의 요소로 구성된 데이터 구조이며, 각 요소는 시퀀스의 다음 요소에 대한 참조(또는 "링크")를 포함합니다. 첫 번째 요소를 헤드(head)라고 하고 마지막 요소를 테일(tail)이라고 합니다.

연결된 목록은 다른 데이터 구조에 비해 많은 장점이 있습니다. 이제 JavaScript를 사용하여 연결 목록을 구현하는 방법을 살펴보겠습니다.

Node 클래스 및 LinkedList 클래스 정의

이것은 기본적으로 JavaScript에서 연결 목록을 구현하기 위한 전제 조건입니다. 이 단계에서는 노드용 클래스와 연결 목록용 클래스 등 2개의 클래스를 만들어야 합니다.

Node 클래스는 연결 목록의 단일 노드를 나타냅니다. 여기에는 data와 next라는 두 가지 속성이 있습니다. data 속성은 노드의 실제 데이터를 저장하는 데 사용되는 반면, next 속성은 목록의 다음 노드에 대한 참조입니다. Node 클래스는 새로운 Node를 생성할 때 데이터를 초기화하는 생성자와 다음 속성으로 구성됩니다.

으아악

LinkedList 클래스는 연결된 목록 자체를 표현합니다. 목록의 첫 번째 노드를 참조하는 head 속성이 있습니다. LinkedList 클래스에는 새 LinkedList를 생성할 때 head 속성을 초기화하는 생성자도 있습니다.

으아악

LinkedList 클래스에는 목록 인쇄, 요소 계산, 목록 반전 등과 같은 다른 작업을 허용하면서 목록에 노드를 삽입, 삭제 및 검색할 수 있는 메서드도 포함되어 있습니다.

링크 목록 인쇄

연결된 목록을 순회하고 각 노드의 데이터를 인쇄하여 연결 목록의 요소를 인쇄할 수 있습니다.

으아악

링크드 리스트에 노드 추가

새 노드를 삽입해야 하는 위치에 따라 연결 목록에 데이터를 추가하는 방법에는 다음과 같이 여러 가지가 있습니다.

링크드 리스트의 시작 부분에 노드를 추가하세요

연결된 목록의 시작 부분에 노드/요소를 추가하려면 데이터가 포함된 새 노드를 만든 후 해당 노드의 다음 속성을 연결 목록의 현재 헤드로 설정하기만 하면 됩니다. 그런 다음 연결된 목록의 헤드를 새 노드로 업데이트할 수 있습니다. 이는 연결리스트 헤드 삽입이라고도 하며 가장 기본적인 데이터 추가 유형입니다. 이는 아래에 정의된 add 함수를 호출하여 간단히 수행됩니다.

으아악

링크드 리스트 끝에 노드를 추가하세요

연결된 목록 끝에 노드/요소를 추가하려면 연결 목록을 순회하여 마지막 노드를 찾아야 합니다. 그런 다음 데이터로 새 노드를 만들고 마지막 노드의 다음 속성을 새 노드로 설정합니다. 이는 연결된 목록의 꼬리 삽입이라고도 하며 두 번째로 기본적인 데이터 추가 유형입니다. 아래에 정의된 addToTail 함수를 호출하면 됩니다.

으아악

특정 위치에 노드 추가

연결된 목록의 특정 위치에 노드/요소를 추가하려면 연결 목록을 순회하여 삽입 지점 이전 위치에서 노드를 찾고, 데이터로 새 노드를 만들고, 새 노드의 다음 속성을 설정하면 됩니다. 해당 위치의 현재 노드로 이동하고 이전 노드의 속성을 변경합니다. 다음 속성은 새 노드로 설정됩니다.

으아악

예(링크된 리스트에 노드 추가)

아래 예에서는 시작, 끝 및 특정 위치에 노드를 추가했습니다.

으아악

출력

class Node {
   constructor(data) {
      this.data = data;
      this.next = null;
   }
}

노드 삭제

요청 시 다양한 방법으로 데이터를 삭제할 수도 있습니다.

특정 노드 삭제

연결된 목록에서 특정 노드를 삭제하려면 연결 목록을 탐색하여 삭제될 노드 이전의 노드를 찾고, 삭제될 노드를 건너뛰도록 다음 속성을 업데이트하고, 다음 노드에 대한 참조를 업데이트해야 합니다. 그러면 값을 기준으로 노드가 삭제됩니다.

으아악

특정 위치의 노드 삭제

연결된 목록의 특정 위치에 있는 노드를 삭제하려면 연결 목록을 탐색하여 삭제될 노드 이전의 노드를 찾고, 삭제될 노드를 건너뛰도록 다음 속성을 업데이트한 다음, 참조를 다음으로 업데이트해야 합니다. 다음 노드. 이는 기본적으로 인덱스 값을 기준으로 노드를 삭제합니다.

으아악

예(선형 목록에서 노드 제거)

아래 예에서는 특정 노드와 특정 위치의 노드 삭제를 구현합니다.

으아악

출력

으아악

결론

JavaScript에서 연결된 목록을 구현하려면 목록의 각 노드를 나타내는 Node 클래스와 목록 자체를 나타내는 LinkedList 클래스를 만들고 LinkedList 클래스에 메서드를 추가하여 데이터 추가 및 제거, 목록 인쇄와 같은 작업을 수행해야 합니다. 구현 시 극단적인 경우를 고려하고 이에 따라 처리하는 것도 중요합니다. 사용 사례에 따라 LinkedList에서 데이터를 추가하거나 제거하는 방법에는 여러 가지가 있습니다.

위 내용은 Javascript에서 LinkedList 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제