回覆列表
  • 1 # 煮碼

    因為題主沒有給出自己本科的專業,那麼就假定你是非科班出身(科班的更好理解我要說的東西),那麼如何高效學習資料結構這門計算機專業課呢?

    資料結構其實是一門需要深刻理解其內涵的課程,理解以後就會順利很多,下面我給出我的一些理解,僅做拋磚引玉。

    首先我們來看看科班的定義:

    “資料結構是一門研究非數值計算的程式設計問題中,資料元素的邏輯結構、資料資訊在計算機中的儲存結構以及一組相關的運算等的課程。”

    先別急著迷糊,拆成一個目標三個問題來看會更加清晰。

    1,一個根本目標:解決非數值計算的程式設計問題

    根本目標簡單理解就是面臨的問題比較複雜,簡單的配合多個數值計算(加減乘除)的組合已經沒有辦法解決了,得找個新路子!

    2,三個主要問題:邏輯結構,儲存結構,相關運算。

    邏輯結構:邏輯結構是在無數的實踐中抽象出來的一些實用的資料組織形式,包括集合,線性結構,圖,樹(是不是很熟悉?),這裡需要理解結構的設計理念,也就是這種結構的優缺點(啥磚蓋啥房),這樣才能保證面臨問題時的靈活應用。

    儲存結構:光有邏輯結構有用嗎?沒用!所以你需要將它落地實現,那麼儲存結構就對應了上述邏輯結構中的具體實現(比如我怎麼把在腦子裡的一棵樹表示成能在計算機裡儲存的形式,方便我接下來的計算呢?)。

    相關運算:在設計邏輯結構的時候,我們可能會定義一些在邏輯結構上的運算,這裡的運算本質上一致。

    至此,你擁有了一些酷炫的邏輯結構,並且能夠在計算機上儲存他們並進行一些操作。從這以後,我們才能談演算法這件事情。就目前考研的要求來看,考察的演算法範圍不大,以408為例,作為公認難度最高的計算機專業課考題,資料結構的題目最難也就是出了一個實際問題,讓你利用圖這種較為複雜的資料結構來表示資料並設計一個演算法來解決它。

    整個解決過程分兩步,第一部分是選取合適的資料結構來表示問題,第二部分是設計有效的演算法來解決問題。前者可以透過深刻理解資料結構來提升能力,後者可以透過大量的積累思路來融會貫通。那麼如果你能夠針對性的練習自己薄弱的地方,我相信一定會有所提升的。

  • 2 # teacoj

    資料結構指資料之間相互關係,即為資料的組織形式。

    主要包括三方面內容:

    1.資料的邏輯結構

    2.資料的儲存結構

    3.資料的運算

    按以上內容層層深入,一章節一章節學習即可

  • 中秋節和大豐收的關聯?
  • 寶寶2-3天大便一次,是便秘嗎?大便帶血,是過敏嗎?