JS基于對象的鏈表實現(xiàn)與使用方法示例
本文實例講述了JS基于對象的鏈表實現(xiàn)與使用方法。分享給大家供大家參考,具體如下:
鏈表是一種在物理內(nèi)存上不連續(xù)的數(shù)據(jù)結構。原理如下圖所示:
示例代碼:
/*JS實現(xiàn)一個基于對象的鏈表*/ function Node(element){ this.element = element;//節(jié)點存儲的元素 this.next = null;//節(jié)點指向的下一個節(jié)點,這里先設置為空 } function LList(){ this.head = new Node("head");//生成一個頭節(jié)點 this.find = find;//在鏈表中找到某個節(jié)點 this.insert = insert;//在鏈表中某個元素后面插入某個節(jié)點元素 this.display = display;//在將鏈表中的節(jié)點元素顯示出來 this.findPrevious = findPrevious;//找到某個節(jié)點的上一個節(jié)點 this.remove = remove;//刪除某個節(jié)點 } function remove(item) { var prevNode = this.findPrevious(item); if (!(prevNode.next == null)) { prevNode.next = prevNode.next.next; } } function findPrevious(item) { var currNode = this.head; while (!(currNode.next == null) && (currNode.next.element != item)) { currNode = currNode.next; } return currNode; } function display() { var currNode = this.head; var nodestr = ""; while (!(currNode.next == null)) { nodestr +=" "+currNode.next.element; currNode = currNode.next; } console.log(nodestr); } function find(item) { var currNode = this.head; while (currNode.element != item) { currNode = currNode.next; } return currNode; } function insert(newElement, item) { var newNode = new Node(newElement); var current = this.find(item); newNode.next = current.next; current.next = newNode; } /*測試例子*/ var num = new LList(); num.insert("a1","head"); num.insert("b1","a1"); num.insert("c1","b1"); num.display();// a1 b1 c1 num.remove("b1"); num.display();// a1 c1
這里使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運行結果:
更多關于JavaScript相關內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript數(shù)學運算用法總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
- js實現(xiàn)雙向鏈表互聯(lián)網(wǎng)機頂盒實戰(zhàn)應用實現(xiàn)
- JavaScript數(shù)據(jù)結構之雙向鏈表和雙向循環(huán)鏈表的實現(xiàn)
- JavaScript數(shù)據(jù)結構之雙向鏈表定義與使用方法示例
- JS雙向鏈表實現(xiàn)與使用方法示例(增加一個previous屬性實現(xiàn))
- JavaScript數(shù)據(jù)結構之鏈表的實現(xiàn)
- javascript寫的一個鏈表實現(xiàn)代碼
- javascript循環(huán)鏈表之約瑟夫環(huán)的實現(xiàn)方法
- javascript數(shù)據(jù)結構之雙鏈表插入排序實例詳解
- JS實現(xiàn)的合并兩個有序鏈表算法示例
- JavaScript實現(xiàn)鏈表插入排序和鏈表歸并排序
- JavaScript數(shù)據(jù)結構之單鏈表和循環(huán)鏈表
- JavaScript 雙向鏈表操作實例分析【創(chuàng)建、增加、查找、刪除等】
相關文章
JavaScript實現(xiàn)封閉區(qū)域布爾運算的示例代碼
這篇文章主要介紹了JavaScript實現(xiàn)封閉區(qū)域布爾運算的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06typescript使用 ?. ?? ??= 運算符的方法步驟
本文主要介紹了typescript使用 ?. ?? ??= 運算符的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-01-01JavaScript使用鏈式方法封裝jQuery中CSS()方法示例
這篇文章主要介紹了JavaScript使用鏈式方法封裝jQuery中CSS()方法,結合具體實例形式分析了JS采用鏈式操作方法封住jQuery中連綴操作實現(xiàn)css()方法的相關技巧,需要的朋友可以參考下2017-04-04JS實現(xiàn)登錄頁面記住密碼和enter鍵登錄方法推薦
下面小編就為大家?guī)硪黄狫S實現(xiàn)登錄頁面記住密碼和enter鍵登錄方法推薦。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。2016-05-05