淺析線性表(鏈表)的頭插法和尾插法的區別及優缺點
線性表作為數據結構中比較重要的一種,具有操作效率高、內存利用率高、結構簡單、使用方便等特點,今天我們一起交流一下單向線性表的頭插法和尾插法的區別及優缺點
線性表因為每個元素都包含一個指向下一元素的指針,所以新增、刪除、修改起來非常簡單迅速
就像火車一樣,一節一節的,想增加就加上一節就成,非常方便
那么在插入的時候卻有兩種方法,頭插和尾插
顧名思義,頭插就是將新元素插在鏈表頭部,尾插就是將新元素插在鏈表尾部
個人總結,他們的區別在於,如果是頭插法的話,那么新元素直接作為頭結點,next指針指向舊的頭結點即可,非常方便迅速效率高。如果是尾插法的話,添加新元素時需要遍歷舊鏈表,直到某個節點的next指針為空,說明這個節點是尾節點,修改這個尾節點的next指針為新添加的元素即可
綜上所述,可以看出他們的區別,也就是優缺點
頭插法:
- 插入速度快(不需要遍歷舊鏈表)
- 頭結點每次插入都會變化,頭結點永遠是最新的元素
- 遍歷時是按照插入相反的順序進行
- 由於頭結點不斷在變化,所以需要額外的維護頭結點的引用,否則找不到頭結點,鏈表就廢了
尾插法:
- 插入速度慢(需要遍歷舊鏈表到最后一個元素)
- 頭結點永遠固定不變
- 遍歷時是按照插入相同的順序進行
另外除此之外,也有人從業務角度討論過兩種的區別
現在很多網站或者系統都有一個“最近使用”之類的功能,這種可以考慮用頭插法實現
當你使用一個功能的時候,就使用頭插法插入一個,查看最近使用的時候直接遍歷線性表,即可得到按照最近使用排好序的內容