真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript如何實(shí)現(xiàn)雙向鏈表操作

這篇文章主要講解了JavaScript如何實(shí)現(xiàn)雙向鏈表操作,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

發(fā)展壯大離不開廣大客戶長(zhǎng)期以來的信賴與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都衛(wèi)生間隔斷等,在重慶網(wǎng)站建設(shè)全網(wǎng)整合營(yíng)銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。

一個(gè) 雙向鏈表(doubly linked list) 是由一組稱為節(jié)點(diǎn)的順序鏈接記錄組成的鏈接數(shù)據(jù)結(jié)構(gòu)。每個(gè)節(jié)點(diǎn)包含兩個(gè)字段,稱為鏈接,它們是對(duì)節(jié)點(diǎn)序列中上一個(gè)節(jié)點(diǎn)和下一個(gè)節(jié)點(diǎn)的引用

開始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)的上一個(gè)鏈接和下一個(gè)鏈接分別指向某種終止節(jié)點(diǎn),通常是前哨節(jié)點(diǎn)或null,以方便遍歷列表。如果只有一個(gè)前哨節(jié)點(diǎn),則列表通過前哨節(jié)點(diǎn)循環(huán)鏈接。它可以被概念化為兩個(gè)由相同數(shù)據(jù)項(xiàng)組成的單鏈表,但順序相反。

class DNode {
 constructor(val) {
  this.val = val;
  this.prev = null;
  this.next = null;
 }
}

增加節(jié)點(diǎn)

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('未找到指定要插入節(jié)點(diǎn)位置對(duì)應(yīng)的值!')
  }
}

展示

// 順序
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('找不到要?jiǎng)h除對(duì)應(yīng)的節(jié)點(diǎn)');
  }
}

看完上述內(nèi)容,是不是對(duì)JavaScript如何實(shí)現(xiàn)雙向鏈表操作有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:JavaScript如何實(shí)現(xiàn)雙向鏈表操作
本文來源:http://weahome.cn/article/jsdcej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部