【程式設計師必須掌握資料結構;
資料結構中必講鍊錶;
所以,程式設計師必須掌握鍊錶】
鍊錶是資料元素的線性集合(linear collection),物理儲存不連續。那麼,這種設計的優點是什麼?缺點又是什麼?
鍊錶的基本結構:
鍊錶是由一系列的「節點」組成在一起的集合,節點(node)由資料域(data)和指標域(next)組成。
機器學習入坑者:陣列的基本概念和優缺點zhuanlan.zhihu.com
鍊錶的分類:
鍊錶的基本操作:
鍊錶的基礎操作包含:插入、刪除、查詢、合併等,此外還有:反轉、排序、深度複製等。
鍊錶的優點:
插入和刪除快;
儲存空間不受限制,可動態申請擴充,不需事先開闢記憶體;
鍊錶的缺點[3]:
相比於陣列,鍊錶的需要更多的儲存空間(需儲存指標);
儲存不連續導致其訪問時間長;
從反向訪問角度,單向鍊錶難以反向訪問,擴充套件為雙向鍊錶則需要額外儲存反向指標;
每次節點訪問都需要從頭部開始;
總結:
本文僅介紹了鍊錶的基本概念,並沒有對各種型別鍊錶進行理論的深入或實現的介紹,也沒有對比各種型別鍊錶的優點和缺點。為避免內容過於冗長,這些任務都安排在後面的筆記中。
參考:
鍊錶/9794473?fr=aladdin
基本功之鍊錶反轉 c
簡單,不過我以為自己第一遍能執行正確的,還是在乙個地方犯了錯。基本思路是給鍊錶創立乙個頭結點,不過我一開始沒考慮邊界情況即pre l的時候,實際上如果讓pre l next pre是準備翻轉的結點的上乙個結點 就不會有這個問題。include include struct lnode lnode i...
程式提速 程式設計基本功
由於現在硬體的高配置,已經很少有程式設計師去關注程式效率的問題,不過相對於做演算法的朋友,效率是永遠的追求。這裡談談我優化程式的一點經驗,供新手討論,高手見笑了。一 程式設計基本功 前幾天給員工做培訓,隨口出了道題,不想竟難倒了所有人。題目是這樣的 現行的人民幣面值有1角,5角,1元,5元,10元,...
Linux平台下java程式設計師的基本功(二)
一 安裝linux和putty 1 安裝比較簡單,不再重複貼圖,具體參考以下文件 如果是在一台全新的機器上安裝,文件中虛擬機器安裝部分忽略即可。也可以參考 2 安裝putty 順便掃掃盲 1 何為putty?putty是乙個免費的windows平台下的telnet rlogin和ssh客戶端,put...