回覆列表
-
1 # 小滷蛋667
-
2 # 用戶307502638179359
我試著用淺顯的例子給你解釋一下:
比如,操場上站了很多人(元素),現在規定每個人記住他後邊的人(指針)
這樣就形成了鏈表。你只要知道鏈表頭(第一個人),然後讓他指出他後邊的
人,逐個指下去,就可以遍歷鏈表。
現在,加入了一個新人。要插到第五個人和第六個人之間。
操作方法是,讓他跟第五個人問一下,第五個人指的是誰,
然後新人也指向這個人(實際就是第六個人)
然後讓第五個人指向新人。這樣,就完成了鏈表的插入運算。
你可以發現,整個過程,只是指針的賦值,而跟每個人的站位是無關的。
大家可以隨便站。
這就是說,鏈表中插入一個元素,各個元素的位置是不需要移動的。
補充一句,如果是數組的話,插入一個值,就需要把插入位置後邊的
所有值移動一位,給它讓位置了。
鏈表優點和缺點如下:
優點:在插入和刪除操作時,只需要修改被刪節點上一節點的鏈接地址,不需要移動元素,從而改進了在順序存儲結構中的插入和刪除操作需要移動大量元素的缺點。
缺點:
1、沒有解決連續存儲分配帶來的表長難以確定的問題。
2、失去了順序存儲結構隨機存取的特性。