国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

JavaScript 雙向鏈表操作實例分析【創建、增加、查找、刪除等】

瀏覽:105日期:2023-11-01 10:43:20

本文實例講述了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測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript數組操作技巧總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》

希望本文所述對大家JavaScript程序設計有所幫助。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 磐安县| 呼图壁县| 长垣县| 招远市| 香港 | 吉林省| 任丘市| 马关县| 旬邑县| 盐城市| 陵川县| 连江县| 郴州市| 呈贡县| 伊金霍洛旗| 噶尔县| 贵港市| 浦城县| 元氏县| 定远县| 太谷县| 大兴区| 景宁| 忻城县| 屏东县| 双峰县| 万山特区| 乌拉特后旗| 开封县| 遂昌县| 龙里县| 老河口市| 平和县| 德州市| 肃宁县| 游戏| 抚松县| 澄江县| 祁阳县| 西青区| 海安县|