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