我現在沒學完C語言,但是學校已經開了數據結構課程,感覺像聽天書一樣,如何更好地理解數據結構?

二古基


計算機專業相關的知識點非常多,看起來又高深莫測的樣子。要掌握海量的相關知識,我們要有一個乾淨利落的切入角度。

我們首先要弄清楚一個問題:什麼是知識?知識就是解決問題辦法的總結。同學們接觸到的所有知識都是為了解決某個問題才出現的,你知道了那個問題,明白了別人解決問題的思路,這個解決辦法也就掌握了。很多同學陷入知識的海洋弄得雲裡霧裡辨不清方向,就是因為不知道這些個知識是幹嘛用的,不知道它們是為解決什麼問題而出現的。而計算機技術裡的很多知識更是這樣,為了解決問題而出現,出現就是一大串。你不知道它要解決什麼問題,就等著被繞暈吧。所以我們先要把編程中遇到的問題找出來,再理解這個問題是怎麼解決的,而這個解決的辦法就是所謂的“知識點”。因此要經常發出“靈魂三問”:這有什麼用?這該怎麼用?怎麼更好用?

這種學習的方法叫做“面向問題的學習方法”。用這種學習方法,在今後的學習與工作中接觸到新知識的時候,馬上意識到這是某種問題的解決辦法,並且從問題切入,相信很快就能把新知識理解並加以運用。

再回到數據結構本身。對於計算機來說,一切不過都是數字。那我們編寫代碼的目的其實就是告訴計算機兩件事,一是有哪些數,二是該怎麼算!因此程序的組成也就是兩個部分:數和數的組織方式,即數據結構,和運算的邏輯,即算法。而所有的編程語言就是要把這兩個部分的內容表達好。

一個完整的編程語言,一般會包含如下內容:數據的聲明與類型、運算符與關鍵詞、3大語句(賦值、選擇、循環)、數據結構、方法、類等。其中數據的聲明與類型、數據結構是用於表達數和數的組織方式;剩餘的除了類以外則是表達運算的邏輯;而類是最特殊的,它既包含數據結構又包含運算邏輯。

要理解數據結構,先要知道數據類型。數據類型分為基本類型(或叫值類型)與複合類型(或叫引用類型)。複合類型是由基本類型或複合類型的數組合而成。而這個組合的形式就是數據結構。

最簡單的數據結構是數組。數組之所以出現,是因為有一些同類型的數之間有邏輯關係,經常在一起用。如果用多個變量表示非常不方便,需要有一個結構把它們組織起來。這就是數組出現的原因。

從數組出發,又會有新的問題被引出來。數組中只能放同類型的數,如果不同類型的數要放在一起怎麼辦?於是出現了“結構體”,從而發展成了“類”。數組的長度是固定的,如果要長度可變怎麼辦?於是出現了鏈表。數組中的數是可以重複的,如果不允許重複怎麼辦?於是出現了“集合”。集合具體該怎麼實現,於是又出現了“樹”。數組只能按序號進行訪問,如果要按名稱訪問怎麼辦?於是出現了“字典”(或叫“映射”)。數組的訪問的任意的,如果要控制訪問的順序怎麼辦?於是出現了“隊列”、“棧”……就是因為這些問題的不斷出現,數據結構越來越多,越來越讓人頭禿。但是隻要我們抓住一條“它們有什麼用?”,也就是它們想要解決什麼問題,理解起來並不是難事。

最後,最根本的一條,計算機知識是拿來用的,數據結構是為編程服務的。如果要真的掌握計算機知識,不如早點動手編程。學校沒有開始講,可以自學嘛。想學的話可以來看看我發佈的零基礎學編程課程,學起來很好玩喔


跟陶叔學編程


第一,我覺得作為一個大學生,自學能力很強。對於C語言沒有學完,可以自己抽時間認真學會。不會的可以到圖書館查閱資料,或者上網也可以自學。現在網絡平臺有好多優質資源,你可以試試。

第二,數據結構的算法比較抽象,必須認真研究。他是編程序的依據,這與C語言沒有必然的聯繫。只是用C語言可以實現一些算法。也可以用別的語言實現。

第三,要對自己有信心。不會的問題可以和老師,同學交流。既然選擇好專業,就應該深入研究。

這就是我的一些看法,希望能夠幫到你!


郭老師初中數學課堂


首先有個東西你需要了解到,程序 = 算法 + 數據結構,無論我們是學Java、Python、PHP還是C語言,對數據結構都要有一定的瞭解,如今很多學編程的人,只注重語法上的使用,當然或多或少都有對數據結構有學習過的,而那些根本沒學過數據結構的人呢?就只能強行去理解使用。其實數據結構是一門具有藝術性的學科。

如何更好地理解數據結構?

  • 一圖一代碼
  • 一功能一函數

一圖一代碼

任何的數據結構的操作,其實都是建立在實際的物理模型之上,我們在學習數據結構的時候,首先你要了解長相,其次在做相應結構實際操作是要根據自己的邏輯圖去分析,所有的代碼源自於自己的物理模型,數據結構中的結構體定義其實就是描述事物的特徵.

一下簡單的舉例一下

棧結構


大頂堆

二叉樹

一功能一函數

我們在寫數據結構的時候, 一定要一函數以功能,劃分明確,出錯易找,寫起來也容易上手,而一功能也能一圖。以鏈式結構為例。

所有的代碼都是源自於物理分析,也就是所謂的畫圖說話。

尾言

文章都是手打原創,每天最淺顯的介紹C語言、C++,windows知識,喜歡我的文章就關注一波吧,可以看到最新更新和之前的文章哦。如果足下基礎比較差,不妨關注下人人都可以學習的視頻教程,通俗易懂,深入淺出,一個視頻只講一個知識點。視頻不深奧,不需要鑽研,在公交、在地鐵、在廁所都可以觀看,隨時隨地漲姿勢

ps:上面的內容都是我數據結構課程的授課圖,有興趣也可以看看小編的數據結構教程


分享到:


相關文章: