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상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기