JavaScript 양 방향 링크 작업 사례 분석[생 성,증가,찾기,삭제 등]
2705 단어 JavaScript양 방향 링크
하나의 양 방향 링크(doubly linked list)는 노드 라 고 불 리 는 순서 링크 기록 으로 구 성 된 링크 데이터 구조 이다.각 노드 는 두 개의 필드 를 포함 하고 링크 라 고 하 는데 이것 은 노드 시퀀스 의 이전 노드 와 다음 노드 에 대한 참조 이다.
시작 노드 와 끝 노드 의 이전 링크 와 다음 링크 는 각각 특정한 종료 노드 를 가리 키 는데 보통 전초 노드 나 null 로 목록 을 옮 겨 다 니 기 편 합 니 다.전초 노드 가 하나 밖 에 없다 면 목록 은 전초 노드 를 통 해 순환 하여 연 결 됩 니 다.그것 은 같은 데이터 항목 으로 구 성 된 두 개의 단일 체인 표 로 개념 화 될 수 있 으 나 순 서 는 반대 이다.
class DNode {
constructor(val) {
this.val = val;
this.prev = null;
this.next = null;
}
}
노드 증가
function add(el) {
var currNode = this.head;
while (currNode.next != null) {
currNode = currNode.next;
}
var newNode = new DNode(el);
newNode.next = currNode.next;
currNode.next = newNode;
}
찾다
function find(el) {
var currNode = this.head;
while (currNode && currNode.el != el) {
currNode = currNode.next;
}
return currNode;
}
끼어들다
function (newEl, oldEl) {
var newNode = new DNode(newEl);
var currNode = this.find(oldEl);
if (currNode) {
newNode.next = currNode.next;
newNode.prev = currNode;
currNode.next = newNode;
} else {
throw new Error(' !')
}
}
전시 하 다.
//
function () {
var currNode = this.head.next;
while (currNode) {
console.log(currNode.el);
currNode = currNode.next;
}
}
//
function () {
var currNode = this.head;
currNode = this.findLast();
while (currNode.prev != null) {
console(currNode.el);
currNode = currNode.prev;
}
}
삭제
function (el) {
var currNode = this.find(el);
if (currNode && currNode.next != null) {
currNode.prev.next = currNode.next;
currNode.next.prev = currNode.prev;
currNode.next = null;
currNode.previous = null;
} else {
throw new Error(' ');
}
}
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.