數(shù)據(jù)結(jié)構(gòu)習(xí)題解析(第2版)
定 價(jià):49 元
叢書名:清華大學(xué)計(jì)算機(jī)系列教材
- 作者:殷人昆 著
- 出版時(shí)間:2011/5/1
- ISBN:9787302243922
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP311.12-44
- 頁碼:463
- 紙張:膠版紙
- 版次:2
- 開本:16開
《數(shù)據(jù)結(jié)構(gòu)習(xí)題解析(第2版)》是清華大學(xué)計(jì)算機(jī)系列教材《數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcc++描述)》(第2版)的配套用書!稊(shù)據(jù)結(jié)構(gòu)習(xí)題解析(第2版)》針對(duì)主教材各個(gè)章節(jié)精選的習(xí)題,給出了參考答案;對(duì)部分習(xí)題提供了多種可能的解答,以幫助學(xué)生以不同的思路來解決問題。
《數(shù)據(jù)結(jié)構(gòu)習(xí)題解析(第2版)》章節(jié)的編排與主教材的章節(jié)嚴(yán)格對(duì)應(yīng)。每一章在開始部分提示本章的復(fù)習(xí)要點(diǎn),總結(jié)主要的知識(shí)點(diǎn);第二部分說明其重點(diǎn)和難點(diǎn),以引起學(xué)習(xí)者的注意;在第三部分給出本章習(xí)題的參考答案;在第四部分進(jìn)一步擴(kuò)展開來,針對(duì)將來工作中可能涉及的知識(shí),兼顧考碩、考博,補(bǔ)充了大批練習(xí)。
《數(shù)據(jù)結(jié)構(gòu)習(xí)題解析(第2版)》中內(nèi)容涵蓋了碩士研究生入學(xué)(全國聯(lián)考)考試大綱的各個(gè)知識(shí)單元,針對(duì)考試的題型,增加了大量選擇題和應(yīng)用題,包括算法題。所有的習(xí)題都經(jīng)過精心挑選和精心解答。
《數(shù)據(jù)結(jié)構(gòu)習(xí)題解析(第2版)》適合本科在校學(xué)生作為學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程的參考書使用,也可以作為考研學(xué)生的復(fù)習(xí)教材。此外,對(duì)于從事計(jì)算機(jī)軟件研發(fā)的人員也有參考價(jià)值。
“數(shù)據(jù)結(jié)構(gòu)”是有關(guān)計(jì)算技術(shù)及信息管理技術(shù)專業(yè)的一門必修的核心課程。數(shù)據(jù)結(jié)構(gòu)課程的任務(wù)是討論在應(yīng)用問題求解時(shí)數(shù)據(jù)的邏輯組織、在計(jì)算機(jī)中的存儲(chǔ)實(shí)現(xiàn)以及相關(guān)操作的算法設(shè)計(jì)。數(shù)據(jù)結(jié)構(gòu)課程的目的是使學(xué)生掌握在實(shí)際問題解決過程中組織數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)和處理數(shù)據(jù)的基本方法,為以后從事軟件開發(fā)和應(yīng)用,為進(jìn)一步學(xué)習(xí)后續(xù)課程打下堅(jiān)實(shí)的基礎(chǔ)。
本教材是清華大學(xué)出版社出版的清華大學(xué)計(jì)算機(jī)系列教材《數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ê虲++描述)》(第2版)的配套教材,它給出了主教材中全部習(xí)題的參考答案和解題分析,并針對(duì)學(xué)生對(duì)基本概念的掌握程度,補(bǔ)充了一些知識(shí)性的練習(xí)。本教材對(duì)于復(fù)習(xí)和準(zhǔn)備考試的學(xué)生有一定參考價(jià)值,但對(duì)于正在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程的學(xué)生,應(yīng)以掌握知識(shí)和培養(yǎng)能力為主,不應(yīng)過多地依賴現(xiàn)成的習(xí)題解答。本教材只應(yīng)作為一個(gè)參考,不應(yīng)當(dāng)做拐杖。
如何復(fù)習(xí)好數(shù)據(jù)結(jié)構(gòu),從作者的經(jīng)驗(yàn)來看,必須抓住重點(diǎn)。首先應(yīng)明確課程考查目標(biāo)。
(1) 理解數(shù)據(jù)結(jié)構(gòu)的基本概念,掌握數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其差異,以及各種基本操作的實(shí)現(xiàn)。
(2) 在掌握基本的數(shù)據(jù)處理原理和方法的基礎(chǔ)上,能夠?qū)λ惴ㄟM(jìn)行設(shè)計(jì)與分析。
(3) 能夠選擇合適的數(shù)據(jù)結(jié)構(gòu)和方法進(jìn)行問題求解。
換句話說,課程考查的目標(biāo)有兩個(gè): 知識(shí)和技能。
在知識(shí)方面,應(yīng)從數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)定義和使用以及存儲(chǔ)表示和操作的實(shí)現(xiàn)兩個(gè)層次,系統(tǒng)地考查。
(1) 掌握常用的基本數(shù)據(jù)結(jié)構(gòu)(包括順序表、鏈接表、棧與隊(duì)列、數(shù)組、二叉樹、堆、樹與森林、圖、查找結(jié)構(gòu)、索引結(jié)構(gòu)、散列結(jié)構(gòu))及其不同的實(shí)現(xiàn)。
(2) 掌握分析、比較和選擇不同數(shù)據(jù)結(jié)構(gòu)、不同存儲(chǔ)結(jié)構(gòu)、不同算法的原則和方法。
在技能方面,應(yīng)系統(tǒng)地學(xué)習(xí)和掌握基本數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,掌握選擇結(jié)構(gòu)的方法和算法設(shè)計(jì)的思考方式及技巧,提高分析問題和解決問題的能力。
為了能夠在有限的時(shí)間內(nèi)學(xué)習(xí)和復(fù)習(xí)好這門課程,應(yīng)當(dāng)注意以下幾點(diǎn)。
(1) 必須注意復(fù)習(xí)在用C/C++/Java語言編寫小程序時(shí)的語法規(guī)則和方法。為算法的分析和算法設(shè)計(jì)題的求解打下基礎(chǔ)。
在復(fù)習(xí)C/C++語言時(shí),要注意以下幾個(gè)問題。
、 函數(shù)的概念和相關(guān)問題。包括函數(shù)類型、函數(shù)特征、函數(shù)參數(shù)傳遞、函數(shù)返回值類型等。特別注意傳值參數(shù)和引用參數(shù)在使用上的區(qū)別。
② 函數(shù)中傳值參數(shù)的作用域。特別注意在函數(shù)中對(duì)傳值形參的任何改變,在退出函數(shù)過程時(shí)不能通過參數(shù)返回。
、 自定義結(jié)構(gòu)的定義方式?梢院(jiǎn)單些,但解題時(shí)不能回避。
④ 在C/C++中的動(dòng)態(tài)存儲(chǔ)分配和回收方式。
⑤ 在C/C++中的輸入輸出文件的定義和使用。特別注意文件的打開、關(guān)閉、讀入、寫出操作的使用。
(2) 在學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)”時(shí),要注意知識(shí)體系。
數(shù)據(jù)結(jié)構(gòu)課程中的知識(shí)本身具有良好的結(jié)構(gòu)性,有些結(jié)構(gòu)是面向應(yīng)用的,有些結(jié)構(gòu)是面向?qū)崿F(xiàn)的。在復(fù)習(xí)時(shí)要注意這兩個(gè)層次以及它們之間的聯(lián)系。
、 注意比較。在復(fù)習(xí)中應(yīng)當(dāng)注意從橫向和縱向進(jìn)行對(duì)比,以加深理解。
縱向?qū)Ρ葘⒁环N結(jié)構(gòu)與它的各種不同的實(shí)現(xiàn)加以比較,理解不同實(shí)現(xiàn)方式的優(yōu)點(diǎn)和相應(yīng)的問題;橫向?qū)Ρ劝▽?duì)同屬一類邏輯結(jié)構(gòu)的不同數(shù)據(jù)結(jié)構(gòu)(如線性表、棧、隊(duì)列)的比較,具有相同功能的不同算法的比較等,了解數(shù)據(jù)結(jié)構(gòu)與算法實(shí)現(xiàn)之間的關(guān)系。
、 注意復(fù)習(xí)和重讀。讀者在初讀時(shí)有些內(nèi)容難以透徹理解或熟練掌握,或看起來似乎很明白,但用的時(shí)候卻想不起如何用。在繼續(xù)復(fù)習(xí)的過程中如遇到或用到有關(guān)內(nèi)容時(shí),應(yīng)當(dāng)及時(shí)復(fù)習(xí)或重讀,這往往能夠化難為易,溫故知新。
③ 注意循序漸進(jìn)。在復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)的定義和各種操作的實(shí)現(xiàn)之前,需首先領(lǐng)會(huì)基本概念、基本思想,這一點(diǎn)極為重要。特別是在閱讀算法之前,一定要先弄清其基本設(shè)計(jì)思想和基本步驟,這將大大降低理解算法的難度。如果只是讀“懂”了算法而不知其基本思想,仍不能算是真懂。讀者可以通過實(shí)例學(xué)習(xí)以加深理解。
、 注意練習(xí)。只看書不做題,不可能真正學(xué)會(huì)有關(guān)知識(shí),更不能達(dá)到技能培養(yǎng)的目的。另一方面,做題也是自我檢查的重要手段。在做算法設(shè)計(jì)類型的習(xí)題時(shí),應(yīng)優(yōu)先考慮數(shù)據(jù)結(jié)構(gòu)的定義,可以直接使用以前定義的數(shù)據(jù)結(jié)構(gòu)和相應(yīng)操作。
、 提高算法設(shè)計(jì)的能力。編寫算法可能是學(xué)生比較棘手的問題,特別是在考試這樣一個(gè)環(huán)境中,時(shí)間又短促,想編出一個(gè)好算法不太容易。筆者一個(gè)建議是首先仔細(xì)閱讀試題,了解它到底要你干什么。然后用一個(gè)簡(jiǎn)單的例子走一下,總結(jié)每一步向下走用什么語句,再做歸納。也可以按照結(jié)構(gòu)化程序設(shè)計(jì)的方法,先搭框架,再根據(jù)例子填入細(xì)節(jié)。
在設(shè)計(jì)一個(gè)算法解決具體問題時(shí),要考慮數(shù)據(jù)結(jié)構(gòu)內(nèi)容的系統(tǒng)性、問題解決方案的多樣性、算法的適用性、問題對(duì)算法選擇的限制。選擇合適的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)有效的算法。最后應(yīng)當(dāng)強(qiáng)調(diào)的是,學(xué)習(xí)方法主要靠自己摸索、多總結(jié)、多思考、勤練習(xí)、勤交流。
作者教授數(shù)據(jù)結(jié)構(gòu)課程,從1987年開始,已經(jīng)有20多年。在教授大學(xué)計(jì)算機(jī)專業(yè)本科數(shù)據(jù)結(jié)構(gòu)課程之外,還教授過大學(xué)自學(xué)考試本科“數(shù)據(jù)結(jié)構(gòu)”課程、進(jìn)行過軟件水平考試數(shù)據(jù)結(jié)構(gòu)課程輔導(dǎo)、全國計(jì)算機(jī)學(xué)科碩士研究生入學(xué)專業(yè)考試“數(shù)據(jù)結(jié)構(gòu)”課程輔導(dǎo)。積累了較為豐富的經(jīng)驗(yàn),因此在本習(xí)題解析中作為學(xué)習(xí)難點(diǎn)和重點(diǎn),挖掘了許多學(xué)生容易忽略或混淆的概念。并在算法設(shè)計(jì)方面精心安排了一些題解。這些對(duì)于希望深入了解“數(shù)據(jù)結(jié)構(gòu)”課程知識(shí),特別是應(yīng)對(duì)考研的學(xué)生,會(huì)有一些幫助。
由于作者在水平上的局限,以及在錄入方面可能的疏忽,書中還會(huì)有許多錯(cuò)誤和疏漏,懇請(qǐng)廣大讀者多多指正。
2011年3月于清華園·荷清苑
第1章 緒論
1.1 復(fù)習(xí)要點(diǎn)
1.2 難點(diǎn)與重點(diǎn)
1.3 教材習(xí)題解析
1.4 補(bǔ)充練習(xí)題
1.5 補(bǔ)充練習(xí)題參考答案
第2章 線性表
2.1 復(fù)習(xí)要點(diǎn)
2.2 難點(diǎn)與重點(diǎn)
2.3 教材習(xí)題解析
2.4 補(bǔ)充練習(xí)題
2.5 補(bǔ)充練習(xí)題參考答案
第3章 棧和隊(duì)列
3.1 復(fù)習(xí)要點(diǎn)
3.2 難點(diǎn)和重點(diǎn)
3.3 教材習(xí)題解析
3.4 補(bǔ)充練習(xí)題
3.5 補(bǔ)充練習(xí)題參考答案
第4章 數(shù)組、串和廣義表
4.1 復(fù)習(xí)要點(diǎn)
4.2 難點(diǎn)與重點(diǎn)
4.3 教材習(xí)題解析
4.4 補(bǔ)充練習(xí)題
4.5 補(bǔ)充練習(xí)題參考答案
第5章 樹與森林
5.1 復(fù)習(xí)要點(diǎn)
5.2 難點(diǎn)與重點(diǎn)
5.3 教材習(xí)題解析
5.4 補(bǔ)充練習(xí)題
5.5 補(bǔ)充練習(xí)題參考答案
第6章 集合與字典
6.1 復(fù)習(xí)要點(diǎn)
6.2 難點(diǎn)和重點(diǎn)
6.3 教材習(xí)題解析
6.4 補(bǔ)充練習(xí)題
6.5 補(bǔ)充練習(xí)題參考答案
第7章 搜索結(jié)構(gòu)
7.1 復(fù)習(xí)要點(diǎn)
7.2 難點(diǎn)和重點(diǎn)
7.3 教材習(xí)題解析
7.4 補(bǔ)充練習(xí)題
7.5 補(bǔ)充練習(xí)參考答案
第8章 圖
8.1 復(fù)習(xí)要點(diǎn)
8.2 難點(diǎn)和重點(diǎn)
8.3 教材習(xí)題解析
8.4 補(bǔ)充練習(xí)題
8.5 補(bǔ)充練習(xí)題參考答案
第9章 排序
9.1 復(fù)習(xí)要點(diǎn)
9.2 難點(diǎn)和重點(diǎn)
9.3 教材習(xí)題解析
9.4 補(bǔ)充練習(xí)題
9.5 補(bǔ)充練習(xí)題參考答案
第10章 文件、外部排序與搜索
10.1 復(fù)習(xí)要點(diǎn)
10.2 難點(diǎn)與重點(diǎn)
10.3 教材習(xí)題解析
10.4 補(bǔ)充練習(xí)題
10.5 補(bǔ)充練習(xí)題參考答案