好多做web開發(fā)的朋友,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法時(shí)可能比較討厭C和C++,上學(xué)的時(shí)候?qū)戇^的也忘得差不多了,更別提沒寫過的了。但幸運(yùn)的是,你會(huì)JavaScript啊。我想說學(xué)好數(shù)據(jù)結(jié)構(gòu)和基本算法并非是要我們必須要去書寫,算法的工作有專業(yè)的職位專業(yè)的人來做,但是如果你希望走的更高,這些是必不可少的,比如你學(xué)習(xí)Redis,如果hashmap等相關(guān)結(jié)構(gòu)的話,也只能停留在使用的層次上,永遠(yuǎn)和優(yōu)化不能掛鉤。我也是個(gè)一瓶子不滿半瓶子晃悠,和希望快速成長的伙伴們共同加深印象,共同提高吧。

如果你對JavaScript OOP還不太了解的話,請移步這兩篇分享:http://www.cnblogs.com/tdws/p/5947693.html    http://www.cnblogs.com/tdws/p/5944254.html

如果你希望學(xué)習(xí)redis的話,可以看下這個(gè)鏈接 http://www.cnblogs.com/tdws/tag/NoSql/

 

進(jìn)入正題

鏈表是一種動(dòng)態(tài)的數(shù)據(jù)結(jié)構(gòu),不同于數(shù)組的是,鏈表分配內(nèi)存空間的靈活性,它不會(huì)像數(shù)組一樣被分配一塊連續(xù)的內(nèi)存。當(dāng)你想在數(shù)組的任意位置,插入一個(gè)新值的時(shí)候,必須對數(shù)組中的各個(gè)元素進(jìn)行相應(yīng)的位置移動(dòng)才能達(dá)到目標(biāo),開銷顯然是很大的。然而鏈表的靈活性在于它的每個(gè)元素節(jié)點(diǎn)分為兩部分,一部分是存儲(chǔ)元素本身,另一部分是指向下一個(gè)節(jié)點(diǎn)元素的引用,也可以稱為指針,當(dāng)你要插入數(shù)據(jù)時(shí),把上一個(gè)節(jié)點(diǎn)的向下指針指向新數(shù)據(jù)節(jié)點(diǎn),新數(shù)據(jù)節(jié)點(diǎn)的向下指針指向原有數(shù)據(jù)。但是鏈表不像數(shù)組那樣可以直接通過索引立刻定位,只能通過遍歷。

圖畫的可能是亂了點(diǎn),就是想突出一下,鏈表分配內(nèi)存的動(dòng)態(tài)性,你隨時(shí)隨地,都可以增加和刪除,并且內(nèi)存的不連續(xù)性和無索引性。我暫時(shí)給鏈表類定義如下幾個(gè)方法

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式