多寫程序是壹個學習數據結構的好方法,先把C++學到精通,多寫壹些內存結構上的程序,主要是順序表、鏈表、棧、隊列、樹等。圖論在面試時考得非常少(搜索等方向的例外,google就經常考圖論),可以不作重點。查找也考得比較少(數據庫和搜索等方向的例外),主要集中在二分查找、哈希表上(哈希很重要,大數據量處理方向的考得特別多,例如百度就專考哈希)。排序是面試中考得最多的,要搞清楚時間復雜度和空間復雜度是怎麽算的。遞歸也經常考,只要按照人正常的思維習慣去考慮問題,就可以輕松掌握遞歸。
在學習內存結構的東西時要結合實際的例子去思考,這個問題為什麽要用這種結構去實現,例如回滾操作或表達式求值要用棧、事務操作要用隊列、動態擴展內存要用鏈表、隨機定位要用順序表等。
數據結構書上常常會有些復雜的算法,如果妳實在理解不了可以先跳過,等到妳有壹定經驗積累時在看。我們計算機學院的在學習數據結構時是也有同樣的感受,覺得很難,但等過了壹年,到自己經驗很豐富時,寫過很多程序時,就不會覺得很難了。
總之,要多寫程序,不能只看書,自己去實現書上寫的偽代碼,自己去找些實際的例子來實現數據結構。