JavaScript 鏈表定義與使用方法示例
本文實(shí)例講述了JavaScript 鏈表定義與使用方法。分享給大家供大家參考,具體如下:
鏈表
一個(gè) 鏈表 是數(shù)據(jù)元素的線性集合, 元素的線性順序不是由它們?cè)趦?nèi)存中的物理位置給出的。 相反, 每個(gè)元素指向下一個(gè)元素。它是由一組節(jié)點(diǎn)組成的數(shù)據(jù)結(jié)構(gòu),這些節(jié)點(diǎn)一起,表示序列。
鏈表的一個(gè)缺點(diǎn)是訪問(wèn)時(shí)間是線性的(而且難以管道化)。
class Node { constructor(val) { this.val = val; this.next = null; }}
顯示鏈表
function display () { var currNode = this.head; while ( !(currNode.next == null) ){ console.log( currNode.next.element ); currNode = currNode.next; }}
查找
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 currNode = this.find( item ); newNode.next = currNode.next; currNode.next = newNode;}
刪除
function findPrev( item ) { var currNode = this.head; while ( !( currNode.next == null) && ( currNode.next.element != item )){ currNode = currNode.next; } return currNode;}function remove ( item ) { var prevNode = this.findPrev( item ); if( !( prevNode.next == null ) ){ prevNode.next = prevNode.next.next; }}
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. ASP實(shí)現(xiàn)加法驗(yàn)證碼2. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?3. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁(yè)4. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)5. asp知識(shí)整理筆記4(問(wèn)答模式)6. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼7. 小技巧處理div內(nèi)容溢出8. js的一些潛在規(guī)則使用分析9. XML解析錯(cuò)誤:未組織好 的解決辦法10. ASP中格式化時(shí)間短日期補(bǔ)0變兩位長(zhǎng)日期的方法
