準備考研的大三狗,跨考軟體工程,學了C語言,水平很爛,仍然掙紮在指針的章節。數據結構看的是嚴蔚敏的《數據結構》,網課看的是浙大的數據結構,目前學的喫力。

存在就是大致演算法思想看的懂,但是演算法描述看的有些地方就是很懵,讓我自己寫是寫不出來,因為有些表達的地方,看的特別懵,有沒有數據結構學前班那種書籍啊?


編程沒過關,看不懂數據結構是很正常的。去新浪微博看陳越姥姥的《C語言自學攻略》,跳過前面,直接看刷題部分。


混喫等死的小白,如果有什麼不足的地方,還望大神們見諒。


語言是基礎功。

根據題主的描述我猜測是在Link list掙扎。link list是指針的運用。就目前我學習數據結構的經驗來看,我覺得數據結構就是對語言的應用。教給你的是處理一些問題的最優的方法。

在學習數據結構前有一個紮實的語言基礎能夠省掉你很多時間。

在學習數據結構前有一個紮實的語言基礎能夠省掉你很多時間。

推薦書籍:

夯實語言基礎

C primer plus

C Primer Plus(第6版)中文版?

book.douban.com圖標
    • 這本書比較基礎,是我最開始學習C的時候用的書。雖然基礎,但是涉及的東西並不淺。(至少對於大二的我來說是這樣的)裡面涉及指針講得非常詳細。這裡列一下需要看的章節,因為相關知識分佈得比較散。
    • 第10章:數組和指針
      • 這章主要是熟悉指針的基本用法
      • 10.3 指針和數組 10.4 函數、數組和指針 10.5 指針操作
    • 第14章 結構和其他數據形式
      • 這章會介紹到structure,這個是演算法裡面經常用到的東西
      • 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.9
    • 第12章
      • 關於動態內存分配的相關知識,在link list 還有指針棧、指針隊列會經常用到
      • 12.1 12.2 12.3 12.4

關於具體的演算法學習

目前演算法相關的書籍用的是《數據結構與演算法分析 C語言描述》。

使用體驗尚可。是輔助平時上課看的。(我其實之前都是不聽老師講課自己看書)建議先跳過第一章演算法分析。因為那章講得比較迷。

數據結構與演算法分析 (豆瓣)?

book.douban.com圖標

其他資源

這裡推薦一個學習演算法可以用到的網站:

https://visualgo.net/zh/?

visualgo.net

https://visualgo.net/zh

裡面圖形化了演算法。能夠幫助你更快地理解一些基礎的原理。建議結合演算法書來觀看。

刷題很重要

學數據結構,應用很重要。這裡需要對學過的演算法進行實踐。要不然就是紙上談兵了。當你真正用過一些方法解決了實際的問題後,你才會發現某個特定的演算法的魅力。

這裡推薦LeetCode。

力扣 (LeetCode) 官網 - 全球極客摯愛的技術成長平臺?

leetcode-cn.com圖標

裡面的題目是分了類的。我在學習數據結構的時候,學到哪就找相關的題來做。學到鏈表做鏈表,學到堆棧做堆棧。

具體刷題的話我就分享一下我是怎麼刷的,因為我也還是個小白。

第一遍

剛開始刷難度統一簡單。剛開始做題會很難受。因為會暴露很多語言不紮實的問題。

如果是基礎語法出錯了,就去翻C primer plus。找個文檔或者啥的記下來。形成一個自己易錯筆記,容易錯的地方見多了,就不容易再出錯。

如果是演算法不熟悉,那是必然,來刷題就是為了熟悉演算法的。實在想不起就翻另外一本我推薦的演算法書。

當你編譯成功後第一遍基本就可以結束了。

第二遍

不管你第一遍有沒有通過測試。第二遍都是必要的 。

第二遍刷什麼?找到解題,去看官方解題的答案。因為一般來說官方的答案都是比我的答案更加優秀的。瞭解官方解答的思路與原理。然後總結筆記。越細越好。

接下來不要看官方的代碼(雖然通常都沒有C的解答來著),自己嘗試去用官方的思路去解答


以上都是我個人的學習經驗和總結。如果有哪些地方有問題,請大神下手重一點。因為我不想走彎路(誤)。不想讓題主走彎路。


首先,個人認為嚴老的數據結構不適合自學。實際上,如果你真的多接觸了幾本演算法書,你會發現 只有演算法導論是真正揉碎了知識教給你的。包括知乎上推薦的 演算法第四版 ,實際上個人讀的時候並不覺得多好,少了太多數學證明和內容。

但是 演算法導論不適合小白讀,一定要有基礎之後,才能學習。如果你有基礎,不妨看一看演算法導論,可以先看漸進符號再看第一第二章。

那麼,我是小白的話,該如何接觸演算法與數據結構呢?

選教材很重要。個人不推薦嚴老的書作為初學書。建議使用抽象級別更好的cpp java作為學習語言,而嚴老的書是以C。我在剛剛接觸學習數據結構的時候買了很多的書 包括 數據結構java實現等等知乎上推薦豆瓣上的高分書 實際上我個人以為這些均 不適合自學。他們無一例外對計算機水平差的0基礎同學不友好。

有點事,待更。


數據結構所需要的C語言基礎主要是指針以及結構體兩塊,當然順序、條件、循環結構等基礎也需要知道,但指針與結構體是C語言通向數據結構的橋樑,需要下功夫去學習,學習方式不推薦啃書,而應該看視頻,視頻推薦小甲魚C語言、浙大翁凱C語言、郝斌C語言,到哪去找這些視頻呢,當時是B站咯

C語言是基礎,重頭戲是數據結構,數據結構學習最忌啃嚴版課本,課本寫得太專業了,內容也多,重點不突出,實在不適合考試應試。數據結構備考正確姿勢應該是用輔導書學,最受歡迎的輔導書是天勤數據結構高分筆記或王道數據結構,這兩本用任意一本就行了,這兩本書寫得很通俗易懂,習題也非常經典有代表性,非常適合應試!

Good Luck!


大話數據結構 啊哈演算法 真心推薦 我剛開始入門的時候和你沒差 看著兩本再進階


我覺得嚴蔚敏老師的數據結構可能不太容易看得懂,想看講得很生動有趣的可以看大話數據結構,網路上有很多關於指針,數據結構的動圖,建議可以看看這些方便理解。而且學習數據結構是需要勤刷題做練習輔助的,光看不練是很難真正理解的。


《演算法》第四版,紅皮的那本


推薦閱讀:
相關文章