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

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