1. 程式人生 > >資料結構學習祕籍

資料結構學習祕籍

資料結構為什麼那麼難?

網路上太多的同學吐槽被虐,如滔滔江水連綿不絕,資料結構太難了!真的很難嗎?其實資料結構只是講了三種:線性結構、樹、圖。到底難在哪裡呢?通過調查瞭解大概有四個原因:

(1) 無法接受的描述方式

資料結構的描述大多是抽象的形式,我們使用自然語言表達習慣了,不容易接受資料結構的抽象表示。不止一個學生問我,書上的“ElemType”到底是什麼型別?執行時怎麼提示錯誤。它的意思就是“元素型別”,只是這樣的描述,你需要什麼型別就寫什麼型別,例如int。這樣的表達方式讓不少人崩潰。

(2) 不知道什麼用處

儘管很多人學習資料結構,有的人是應付考試,有的人考研需要,有的人蔘加演算法競賽需要,而很多人不太清楚學習資料結構有什麼用處,迷迷糊糊看書做題考試。

(3) 體會不到其中的妙處

由於教材、教師等等各種因素影響,很多學生沒有體會到資料結構處理資料的妙處,經常為學不會而焦頭爛額,無法體會其中樂趣,有趣是才有意思,興趣是最大的驅動力。

(4) 語言基礎不好

我一直強調先看圖解,理清思路,再上機。還是有很多同學已經理解了思路後,因為缺少main函式,輸入輸出格式不對,缺少括號等等各種語言問題卡殼,而這一切統統戴給了“資料結構太難了”這個大帽子。

資料結構學習祕籍

在講學習祕籍之前,首先了解一下資料結構學習的三種境界:

(1) 會資料結構的基本操作

這是最基礎的要求,學會各種資料結構的基本操作,取值、查詢、插入、刪除等。先看圖解,理解各種資料結構的定義,操作方法,然後看程式碼,嘗試自己動手上機執行,逐漸掌握基本操作。初學時,要想理解資料結構,一定要學會畫圖,通過畫圖形象表達,更能體會其中的資料結構關係。因此,初學階段學習利器:畫圖,理解,畫圖。

(2) 會利用資料結構,解決實際問題

在掌握了書上的基本操作之後,就可以嘗試利用資料結構解決一些實際問題了,先學經典應用問題的解決方法,體會資料結構的使用方法,然後再做題,獨立設計資料結構解決問題。要想熟練應用就必須做大量的題,從做題中體會其中的方法。最好進行專項練習,比如線性表問題,二叉樹問題,圖問題,該階段學習利器:做題,反思,做題。

(3) 熟練使用和改進資料結構,優化演算法

這是最高境界了,也是學習資料結構的精髓所在,單獨學習資料結構是無法達到這種境界的。它需要在學習演算法的過程中慢慢修煉。在學習演算法的同時,逐步熟練應用、改進,慢慢體會不同資料結構和演算法策略的演算法複雜性,最終學會利用資料結構改進和優化演算法。該階段已經在資料結構之上,通過在ACM測試系統上刷各種演算法題,體會利用資料結構改進優化演算法。該階段學習利器:刷題,總結,刷題。