一、數(shù)據(jù)結(jié)構(gòu)中的算法設計題
1. 夯實基礎
翻看一些王道考研數(shù)據(jù)結(jié)構(gòu)復習指南,會有以下這些知識點:
緒論數(shù)據(jù)結(jié)構(gòu)基本概念算法和算法評價2. 線性表
線性表的定義與基本操作線性表的順序、鏈式表示3. 棧和隊列
棧和隊列的基本操作棧和隊列的應用特殊矩陣4. 樹和二叉樹
樹和二叉樹的基本概念二叉樹的遍歷和線索二叉樹樹和二叉樹的應用5. 圖
圖的基本概念圖的存儲和基本操作圖的遍歷圖的應用6. 查找和排序
順序查找和折半查找B樹和B+樹散列表7. 排序
插入 交換 選擇 歸并等內(nèi)部排序外部排序其中,在算法設計題中,優(yōu)先級排序為:樹>線性表>圖>排序查找。要熟悉這些基本的算法操作需要對其涉及的數(shù)據(jù)結(jié)構(gòu)非常的熟悉,所以在名列前茅階段應該把重點放在對基本概念,存儲結(jié)構(gòu)和基本操作上面,而對于算法設計題,只需要短暫思考后,不會就看著答案,走一遍算法過程即可。
2. 強化算法編寫
有了名列前茅遍的復習,能夠達到的效果就是各種數(shù)據(jù)結(jié)構(gòu)比較清楚,但是寫算法設計題時面臨:1. 沒有任何思路;2. 有思路但是寫起來磕磕絆絆的情況。針對名列前茅個問題,我們只要記住任何算法題都有暴力搜索的解法,我們最差也要會這種解決,第二個問題是本階段要重點解決的,需要做的是熟記常見的c語言語法,編寫方式,然后用大量題型一遍一遍的訓練自己完整的寫出算法設計題。
請注明出處。
3. 模板化應試
在經(jīng)過了第二個階段的訓練后,應該開始有一些感覺了,很多題目的寫法大同小異,我們從中可以提煉出,深度搜索、廣度搜索等算法模板,并在遇到此類算法解法時套用該模板,一以貫之??佳袑I(yè)課只有短短3個小時的時間,你需要快速的拿到大部分的分數(shù),這時候應試技巧就很重要了,而模板化思維是很重要的。
延伸閱讀:
二、線性結(jié)構(gòu)是什么
簡單地說,線性結(jié)構(gòu)是一個數(shù)據(jù)元素的有序(次序)集合。它有四個基本特征:1)集合中必存在少數(shù)的一個“名列前茅個元素”。
2)集合中必存在少數(shù)的一個“最后的元素”。
3)除最后元素之外,其它數(shù)據(jù)元素均有少數(shù)的“后繼”。
4)除名列前茅元素之外,其它數(shù)據(jù)元素均有少數(shù)的“前驅(qū)”。數(shù)據(jù)結(jié)構(gòu)中線性結(jié)構(gòu)指的是數(shù)據(jù)元素之間存在著“一對一”的線性關系的數(shù)據(jù)結(jié)構(gòu)。如(a1,a2,a3,…..,an),a1 為名列前茅個元素,an 為最后一個元素,此集合即為一個線性結(jié)構(gòu)的集合。