感言 -《大話資料結構》的讀後感言

sswushuang發表於2018-08-02

計劃趕不上變化,還是辜負了之前自己的讀書計劃
多半還是因為懶,哈哈。

終於完成了《大話資料結構》這本書的閱讀,上一次完成整本專業書的閱讀要追溯到兩年前了。開始讀一本書可能是因為純粹的好奇,後來就變成了需要堅持的工作,隨著內容的加深,逐漸變成像是攀爬一座山峰,越快到山頂越難堅持。

因為沒有看過其他資料結構的書,所以無從比較。單從感覺上來說,書中內容已經儘量做到簡單易懂,描述語言儘量輕鬆,偶爾的一些插科打諢作為“藥引”令人舒服。內容覆蓋的方面應該算全的。我是在視訊網站搜尋資料結構方面的視訊,評論裡有人推薦的這邊書。看來本書經受住了時間和市場的檢驗。

書中除有資料結構的知識外,還有作者的一些小的個人特色。比如告訴大家要突破思維中的牆,要有所追求,要多思考。非雞湯,很誠懇。這些都是作者智慧和人格魅力的體現吧。

最後感謝作者。


閱讀本書的收穫:

  1. 資料結構和演算法的“親密性”。二者就應該放在一起討論,缺一不可。

  2. 資料結構是什麼?即資料的儲存結構和資料的邏輯結構,進一步來說,就是資料物理存放方式和資料之間的邏輯先後順序。

  3. 一本書如果在每章的結尾做進行一些總結,並配一些簡單的表格進行梳理,對讀者把握整體脈絡來說就再好不過了。本書就是。

  4. 資料的儲存、讀取、插入、刪除、排序、查詢等操作相關的應用條件和規模的不同,決定了需要有不同的結構來儲存資料。為了提升這些行為與資料互動的效率,也就有了優化的結構和優化的演算法。

  5. 典型的線性表就是陣列。線性表中刪除和插入很容易理解和程式碼實現。

  6. 指標真是C語言中的精髓。它和線性表結合就有了連結串列。

  7. 在棧、佇列、樹及圖等資料結構的描述、插入、刪除和遍歷操作中也有指標的參與。不過指標的指向往往讓人捉摸不透,真是不一樣的花火啊,不懂的人很痛苦,比如我。

  8. 得益於指標,鏈這種結構可以採用不同的方式遍歷,比如迴圈,比如雙向,就像莫比烏斯環一樣,辨不清哪裡是開頭,哪裡是結尾。

  9. 我不是針對誰,有指標的語言都完全不想學呢。

  10. 棧是先進後出,佇列是先進先出。

  11. 資料結構如果結合實際例子會更好理解,如棧能用瀏覽器的後退鍵來舉例子,用遞迴來舉例子。其他資料結構的描述似乎做的不太夠。

  12. 串:KMP模式匹配演算法。

  13. 樹這種資料結構中,完全二叉樹似乎在後文中出現的頻次較高,瞭解它比其他型別的樹重要。

  14. 二叉樹的性質很多,竊以為不用太瞭解。

  15. 二叉樹的遍歷方式有四種,感覺和茴香豆的茴字有四種寫法似乎有某種神祕的聯絡。這四種遍歷方式的程式碼實現均採用了遞迴,讓我對遞迴很著迷。

  16. 採用一個指標的資料結構僅能“後知五百年”,採用兩個的能前後“各知五百年”,採用多個指標的還能知當今天下事。同理,在二叉樹中,採用一個指標的結點,僅能廕庇“子嗣”;採用兩個指標的結點,還能侍奉“雙親”;採用更多個指標的,更能兄弟同袍。儼然一副欣欣向榮、開枝散葉的景象。

  17. 理解樹、森林與二叉樹的轉換需要一些藝術細胞。然而,我沒有。

  18. 圖是什麼?怎麼存?最短路徑的判斷有幾種演算法?怎麼排序?怎麼求關鍵路徑?我都不知道。圖結合了表、鏈、二叉樹和指標結合的所有難點,我的理解力突然消失了,我找到了我的痛點,並且是很痛的那種。

  19. 圖的深度優先和廣度優先遍歷很有意思,因為它們的實現程式碼有我著迷的遞迴。

  20. 看到查詢這節的時候,我丟失了之前的所有筆記。

  21. 斐波那契查詢的理解讓我費了點時間,它是一種基於黃金分割的資料對摺查詢方法。

  22. 在多路查詢樹中資料的插入和刪除操作,儘管作者說“總的來說它是有規律的,需要你們在上面的這些例子中多去體會後掌握”,但是,我不以為然,我完全在是看作者表演。

  23. 在排序演算法中,我獨愛氣泡排序和簡單選擇排序。歸併排序中運用了遞迴。歸併排序的非遞迴實現在一定程度上能夠超越程式碼簡潔的遞迴。

  24. 《演算法導論》在書中註釋裡被頻頻提到,它很經典,但是它的篇幅讓人望而卻步。

  25. 快速排序演算法中,樞軸的選擇方式就是個笑話。

  26. 演算法的優劣要從輔助空間佔用、演算法複雜度、穩定性等方面來做評判。

相關文章