前面樓主分別討論了數(shù)據結構棧與隊列的實現(xiàn),當時所用的數(shù)據結構都是用的數(shù)組來進行實現(xiàn),但是數(shù)組有的時候并不是最佳的數(shù)據結構,比如在數(shù)組中新增刪除元素的時候需要將其他元素進行移動,而在javascript中使用spit()方法不需要訪問其他元素。如果你在使用數(shù)組的時候發(fā)現(xiàn)很慢,就可以考慮使用鏈表。
鏈表的概念
鏈表是一種常見的數(shù)據結構。它是動態(tài)地進行存儲分配的一種結構。鏈表有一個“頭指針”變量,以head表示,它存放一個地址,指向一個元素。每個結點都使用一個對象的引用指標它的后繼,指向另一個結點的引用叫做鏈。
數(shù)組元素依靠下標(位置)來進行引用,而鏈表元素則是靠相互之間的關系來進行引用。因此鏈表的插入效率很高,下圖演示了鏈表結點d的插入過程:
刪除過程:
基于對象的鏈表
我們定義2個類,Node類與LinkedList類,Node為結點數(shù)據,LinkedList保存操作鏈表的方法。
首先看Node類:
1 function Node(element){ 2 this.element = element; 3 this.next = null; 4 }
element用來保存結點上的數(shù)據,next用來保存指向一下結點的的鏈接?! ?/p>
LinkedList類: