本書收集了國(guó)家統(tǒng)考(2009~2015年)、985和211重點(diǎn)高校以及科學(xué)院、所340多套碩士研究生入學(xué)“(算法與)數(shù)據(jù)結(jié)構(gòu)”考試試卷的2000多道試題,并給出了參考答案和分析。
本書自2007年再版以來(lái),已過(guò)去近8年。為適應(yīng)教學(xué)和碩士研究生入學(xué)考試的變化,編者決定對(duì)本書再版。
這次再版做了如下變動(dòng):加入了2009~2015年的全國(guó)統(tǒng)考試題;刪除了一些已不具典型性的試題,強(qiáng)化了985和211大學(xué)以及科學(xué)院、所的試題;加入了一些重點(diǎn)大學(xué)近年來(lái)的考研試題;刪除了絕大部分以Pascal語(yǔ)言描述的試題,保留了個(gè)別以Pascal定義數(shù)據(jù)結(jié)構(gòu)的試題,但用C給出了解答;按授課常見(jiàn)的知識(shí)點(diǎn)的順序?qū)υ囶}進(jìn)行了編排,盡量把相似內(nèi)容放在一起;增加了對(duì)選擇題和判斷題答案的分析;修正了答案;考慮到算法的多樣性和篇幅限制,只對(duì)少數(shù)題給出完整算法,多數(shù)題只給出算法分析提示和核心語(yǔ)句段。像過(guò)去的版本一樣,對(duì)所有試題都標(biāo)明出處。個(gè)別試題只標(biāo)出學(xué)校和年份,沒(méi)有具體題號(hào)和分?jǐn)?shù)。全國(guó)試題放在相關(guān)章的前面。再版后的試題按題號(hào)計(jì)是2031題,其中選擇題553道、判斷題313道、填空題350道、應(yīng)用題453道、算法設(shè)計(jì)題362道。
由于本書引用了各校真實(shí)試題,為尊重原題,除極個(gè)別情況外,對(duì)試題中的術(shù)語(yǔ)和變量未作校正。例如,鏈表指針域next和link,變量n和N,生成樹(shù)和跨接樹(shù),遍歷和周游,等等。還應(yīng)指出,有個(gè)別試題(包括全國(guó)統(tǒng)考試題)在敘述上不夠嚴(yán)格,編者給予了說(shuō)明。
編者對(duì)全國(guó)試題進(jìn)行了深入分析。由于四門課程一張?jiān)嚲恚瑪?shù)據(jù)結(jié)構(gòu)占45分,很難涵蓋數(shù)據(jù)結(jié)構(gòu)的各章。選擇題10道,占20分(有6年是11道,占22分);應(yīng)用題2道,占25分,其中算法題至多占15分。試題在各章的分布詳見(jiàn)附錄A。
數(shù)據(jù)結(jié)構(gòu)作為一門課程,幾十年來(lái)一直在發(fā)展中。描述算法的語(yǔ)言一直在變化,從Knuth的算法描述語(yǔ)言,到Pascal語(yǔ)言,再到類C語(yǔ)言,近年又出現(xiàn)了用C++和Java語(yǔ)言描述的教材。編者認(rèn)為,數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識(shí)沒(méi)有太大變化,教材涵蓋的內(nèi)容基本沒(méi)有變化,基本算法沒(méi)有變化。對(duì)具體問(wèn)題用哪種語(yǔ)言描述,只是描述工具不同,解決問(wèn)題的算法思想是一樣的。研究7年來(lái)國(guó)家統(tǒng)考、67所高等院校和研究院、所的340多套試題,編者發(fā)現(xiàn)試題重復(fù)量很大,20年前的試題至今仍在重復(fù)使用。很多國(guó)家統(tǒng)考試題都可以在本書中找到原題或類似題。編者強(qiáng)調(diào)掌握數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識(shí)和一些重要的算法,這對(duì)學(xué)好數(shù)據(jù)結(jié)構(gòu)課程和取得更好的考研成績(jī)是非常重要的。
對(duì)于學(xué)生如何使用本書,我們給出如下建議。在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程時(shí),要同步完成選擇題、判斷題和應(yīng)用題,部分完成填空題和算法設(shè)計(jì)題。考研的學(xué)生,要在本課程結(jié)束后的假期做完算法設(shè)計(jì)題。即使寫不完全部代碼,至少要把各題的算法思想搞清楚。要特別重視算法填空題中的填空,這部分內(nèi)容對(duì)學(xué)生的算法設(shè)計(jì)訓(xùn)練很有益處。
2009年,國(guó)家對(duì)碩士研究生入學(xué)計(jì)算機(jī)學(xué)科專業(yè)基礎(chǔ)綜合進(jìn)行全國(guó)統(tǒng)考,后來(lái),國(guó)家允許一些院校對(duì)碩士研究生入學(xué)考試的計(jì)算機(jī)專業(yè)課實(shí)行自主命題。某些學(xué)校將150分的專業(yè)考試都給了數(shù)據(jù)結(jié)構(gòu),足見(jiàn)數(shù)據(jù)結(jié)構(gòu)課程的重要性。鑒于此,本書選題基本涵蓋了數(shù)據(jù)結(jié)構(gòu)課程的全部?jī)?nèi)容,除了國(guó)家統(tǒng)考大綱規(guī)定的內(nèi)容外,還包含目前國(guó)家統(tǒng)考大綱中不包括的串、數(shù)組和廣義表、動(dòng)態(tài)存儲(chǔ)管理、外部排序和文件等內(nèi)容。學(xué)生在備考時(shí),要特別注意所考學(xué)校對(duì)數(shù)據(jù)結(jié)構(gòu)內(nèi)容方面的要求。
感謝讀者多年來(lái)對(duì)本書的肯定,這是編者再版本書的動(dòng)力;感謝機(jī)械工業(yè)出版社華章公司的溫莉芳女士和朱劼女士,她們對(duì)本書試題的選擇提出了有益的建議和具體要求;感謝遲振春女士和朱秀英女士的辛勤編輯工作。
本書自出版以來(lái),深受讀者喜愛(ài),被評(píng)為“2008年度暢銷榜TOP50”,成為眾多考研讀者的必備參考書。編者雖已盡最大努力,但是書中難免還會(huì)有缺點(diǎn)和錯(cuò)誤,懇請(qǐng)讀者批評(píng)指正(陳守孔郵箱:skcnmu@163.com)。
編 者2015年1月于珠海第2版前言自《算法與數(shù)據(jù)結(jié)構(gòu)考研試題精析》第1版出版以來(lái),得到了讀者的好評(píng)。為了反映近幾年考研試題的變化,更好地為讀者服務(wù),編者對(duì)本書進(jìn)行了全面修訂。
首先是對(duì)試題進(jìn)行了增刪,刪除了400多道試題,替換了200多道試題,按編號(hào)計(jì)算再版試題共1659題,其中算法設(shè)計(jì)327題。不再設(shè)立“類似本題的敘述”這部分內(nèi)容,每題都是單獨(dú)編號(hào)。對(duì)參考答案進(jìn)行了審核,盡量做到答案準(zhǔn)確、簡(jiǎn)練。
在準(zhǔn)備再版的資料時(shí),編者再次印證了“數(shù)據(jù)結(jié)構(gòu)的考研試題重復(fù)量很大”的結(jié)論。在收集的近幾年的試題中,絕大部分試題都可在本書第1版中找到,尤其是基礎(chǔ)知識(shí)題,有些試題的敘述完全一樣。由此可以看出,弄懂了本書的試題,無(wú)疑將對(duì)考研有很大幫助。
通過(guò)整理這幾年的試題,編者還發(fā)現(xiàn),幾乎所有院校都突出了對(duì)基礎(chǔ)知識(shí)的考查。本書中各章的第一到第四部分就屬于基礎(chǔ)知識(shí)。過(guò)去,個(gè)別院校的試題過(guò)于側(cè)重算法設(shè)計(jì),而沒(méi)有基本概念和基本知識(shí)。現(xiàn)在大多數(shù)院校的碩士研究生考試將專業(yè)課整合為一張?jiān)嚲恚ㄕ?50分)(少數(shù)院校仍單獨(dú)考核數(shù)據(jù)結(jié)構(gòu)),其中包括兩門課程或三門課程的內(nèi)容。數(shù)據(jù)結(jié)構(gòu)所占的分?jǐn)?shù)少則50分,多則90分,并且基礎(chǔ)知識(shí)占多數(shù),一道算法設(shè)計(jì)題占20分以上的現(xiàn)象已很少見(jiàn)。所以,編者希望讀者,特別是考研的學(xué)生,應(yīng)該加強(qiáng)基礎(chǔ)知識(shí)的學(xué)習(xí)。
為了節(jié)省篇幅,避免在每道試題解答中重復(fù)定義所用數(shù)據(jù)結(jié)構(gòu),在本書附錄中將給出所用的數(shù)據(jù)結(jié)構(gòu),試題解答中將直接使用。
編者欣喜獲悉,許多教師將本書作為教學(xué)參考書和考試的題庫(kù),考研學(xué)生通過(guò)學(xué)習(xí)本書大大提高了考研的成績(jī),我們期望本書在教學(xué)中發(fā)揮更大作用。
盡管我們作了很大努力,但由于水平有限,書中難免會(huì)有缺點(diǎn)錯(cuò)誤,懇請(qǐng)讀者批評(píng)指正。
編 者2007年3月第1版前言“算法與數(shù)據(jù)結(jié)構(gòu)”課程是高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門重要的綜合專業(yè)基礎(chǔ)課,近年來(lái)也成為非計(jì)算機(jī)專業(yè)的必修課或選修課。在以往的碩士研究生入學(xué)考試中,該課程是計(jì)算機(jī)類專業(yè)的必考科目,也是相關(guān)專業(yè)的考試科目。
編者多年來(lái)在大學(xué)講授“算法與數(shù)據(jù)結(jié)構(gòu)”課程。在教學(xué)中感到,學(xué)生理解課程的概念和書本知識(shí)并不困難,一旦涉及解決具體問(wèn)題,特別是編制算法,往往無(wú)從著手。為了加強(qiáng)學(xué)生對(duì)本課程基本概念和基礎(chǔ)知識(shí)的理解,特別是加強(qiáng)對(duì)編寫算法的訓(xùn)練,我們編寫了本書。
本書從編排上分三部分。第一部分簡(jiǎn)要復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)各章的重點(diǎn),第二部分是編者收集的自1992年以來(lái)國(guó)內(nèi)68所重點(diǎn)高校和科學(xué)院、所300多套碩士研究生入學(xué)“算法與數(shù)據(jù)結(jié)構(gòu)”考試試卷的1800多道試題,第三部分給出了參考答案和分析。
本書的各章名稱與《算法與數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)》教材相同。每章分選擇題、判斷題、填空題、應(yīng)用題和算法設(shè)計(jì)題五部分。前四類題屬于基礎(chǔ)知識(shí)。選擇題多是單選,也有少數(shù)是多選,編者直接給出參考答案;判斷題是判斷對(duì)錯(cuò),除給出參考答案外,還對(duì)個(gè)別題給予了解釋;填空題有概念填空、計(jì)算填空,值得注意的是有些院校的算法(程序)填空,即填上幾個(gè)關(guān)鍵語(yǔ)句,使之成為完整算法(程序),這類題要求較高;應(yīng)用題有的回答基本概念和基礎(chǔ)知識(shí),較多的是手工模擬算法,這部分占的比例較大;算法設(shè)計(jì)是本書重點(diǎn),占的篇幅最大,除比較簡(jiǎn)單的題外,多數(shù)題都按題目分析、算法設(shè)計(jì)、算法討論三部分展開(kāi)。算法設(shè)計(jì)中除題目要求必須用PASCAL語(yǔ)言描述的外,一律用類C語(yǔ)言描述。算法描述中涉及的類型定義和數(shù)據(jù)結(jié)構(gòu)基本取自本書的配套教材《算法與數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)》,為節(jié)省篇幅,本書不再重新定義而直接使用。
試題的選取原則是:覆蓋教材各章節(jié),兼顧重點(diǎn)章節(jié);主要選名牌院校的考題;同類型試題解答一個(gè),列出類似試題,多數(shù)未作解答。列出類似題的目的之一,是引起學(xué)生對(duì)該類題的重視,考題重復(fù)率高也從側(cè)面說(shuō)明了該類題的重要性。由于本書收集的是全國(guó)各高校和科學(xué)院、所的試題,加之各校教材不同,所以在題目的敘述上有很大差異。甚至所用名詞、概念也不相同。語(yǔ)言描述上有PASCAL語(yǔ)言、類C語(yǔ)言、框圖和偽碼等,敘述及算法描述中的大小寫不是很統(tǒng)一。我們盡量尊重原題,為保持本書風(fēng)格大體一致,對(duì)部分術(shù)語(yǔ)進(jìn)行了統(tǒng)一。另外,在每道題后都注明了題目出處,例如【清華大學(xué) 1997 三(10分)】的含義是本題選自清華大學(xué)1997年碩士研究生數(shù)據(jù)結(jié)構(gòu)試題第三題,試題分?jǐn)?shù)是10分,有的還指出大題中的小題。對(duì)于類似題,個(gè)別的也作了簡(jiǎn)單解答。
試題也按教材分11章列出。但試題內(nèi)容具體分到哪章,其劃分并不唯一。例如,線性表的問(wèn)題,可以放在第2章,也可能因其用順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)使用了數(shù)組而放到第5章,也可能因排序而放到第10章,甚至因用順序查找而放到第9章。本書各章相互獨(dú)立,在使用本書時(shí),可以順序?qū)W習(xí),也可以根據(jù)需要直接選擇某章。
為了增大本書的信息量,在保持算法易讀性的前提下,盡量使用多語(yǔ)句行,盡量減少圖(使用表格代替圖形)。
本書是很多人的勞動(dòng)結(jié)晶。計(jì)算機(jī)學(xué)院的學(xué)生購(gòu)買了試題,并進(jìn)行了文字輸入。寧方美、田相慶、龐圣波、王景波等同學(xué)對(duì)輸入的試題進(jìn)行了校對(duì)。范策、孟佳娜、盧云宏等老師對(duì)算法提出了一些建議,編者對(duì)所有幫助編寫本書的同志表示衷心的感謝。在成書過(guò)程中,還得到了機(jī)械工業(yè)出版社的支持和幫助,在此表示衷心的感謝。
胡瀟琨老師編寫了本書的第10章,并做了試題歸類等工作。李玲老師編寫了本書的第1章,繪制了大量圖表,并核查了部分算法。本書中除第1章、第10章外的其余內(nèi)容均由陳守孔老師編寫。
我們盡全力保證本書的質(zhì)量,但由于水平有限,加之時(shí)間緊張,書中肯定會(huì)有缺點(diǎn)和錯(cuò)誤,特別是算法的編寫很難保證是優(yōu)化的。編者誠(chéng)懇地期望讀者給予批評(píng)指正。
編 者2004年4月于煙臺(tái)大學(xué)
第3版 前言
第2版 前言
第1版 前言
第一部分 復(fù)習(xí)綱要
第1章 概論
第2章 線性表
第3章 棧和隊(duì)列
第4章 串
第5章 數(shù)組和廣義表
第6章 樹(shù)和二叉樹(shù)
第7章 圖
第8章 動(dòng)態(tài)存儲(chǔ)管理
第9章 集合
第10章 排序
第11章 文件
第二部分 試題部分
第1章 概論
第2章 線性表
第3章 棧和隊(duì)列
第4章 串
第5章 數(shù)組和廣義表
第6章 樹(shù)和二叉樹(shù)
第7章 圖
第8章 動(dòng)態(tài)存儲(chǔ)管理
第9章 集合
第10章 排序
第11章 文件
第三部分 參考答案
第1章 概論
第2章 線性表
第3章 棧和隊(duì)列
第4章 串
第5章 數(shù)組和廣義表
第6章 樹(shù)和二叉樹(shù)
第7章 圖
第8章 動(dòng)態(tài)存儲(chǔ)管理
第9章 集合
第10章 排序
第11章 文件
附錄A 2009~2015年全國(guó)碩士研究生入學(xué)計(jì)算機(jī)學(xué)科專業(yè)基礎(chǔ)綜合試題在教材各章中的分布
附錄B 本書所選試題在教材各章中的分布
參考文獻(xiàn)