26 號(hào)學(xué)了數(shù)據(jù)鏈表,數(shù)據(jù)鏈表是一種新型儲(chǔ)存方式,與同樣具備連續(xù)查找能力的數(shù)組來(lái)說(shuō)可謂是各有千秋,二者都屬于一種數(shù)據(jù)結(jié)構(gòu),但從邏輯結(jié)構(gòu)來(lái)看
1. 數(shù)組必須事先定義固定的長(zhǎng)度(元素個(gè)數(shù)),不能適應(yīng)數(shù)據(jù)動(dòng)態(tài)地增減的情況。當(dāng)數(shù)據(jù)增加時(shí),可能超出原先定義的元素個(gè)數(shù);當(dāng)數(shù)據(jù)減少時(shí),造成內(nèi)存浪費(fèi);數(shù)組可以根據(jù)下標(biāo)直接存取。
2. 鏈表動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配,可以適應(yīng)數(shù)據(jù)動(dòng)態(tài)地增減的情況,且可以方便地插入、刪除數(shù)據(jù)項(xiàng)。(數(shù)組中插入、刪除數(shù)據(jù)項(xiàng)時(shí),需要移動(dòng)其它數(shù)據(jù)項(xiàng),非常繁瑣)鏈表必須根據(jù) next 指針找到下一個(gè)元素
從內(nèi)存存儲(chǔ)來(lái)看
1. ( 靜態(tài) ) 數(shù)組從棧中分配空間 , 對(duì)于程序員方便快速 , 但是自由度小
2. 鏈表從堆中分配空間 , 自由度大但是申請(qǐng)管理比較麻煩
?
從以上的比較可以看出,如果需要快速訪問(wèn)數(shù)據(jù),很少或不插入和刪除元素,就應(yīng)該用數(shù)組;相反, 如果需要經(jīng)常插入和刪除元素就需要用鏈表數(shù)據(jù)結(jié)構(gòu)了。
而對(duì)于在編寫鏈表過(guò)程中遇到的困難主要集中在編寫移除方法的時(shí)候,這個(gè)方法需要考慮三個(gè)情況,分別是如果刪除項(xiàng)為首項(xiàng),尾項(xiàng),中間項(xiàng)的不同的處理方法,寫代碼時(shí)必須在腦海里有一個(gè)清晰的關(guān)系圖,否則你不知道地址該怎么傳,上一位的地址在下一位刪除了的情況下該如何去傳遞,解決了這些問(wèn)題,鏈表的管理就不成問(wèn)題了,完成后代碼如下:
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
