高等院!笆濉焙诵恼n程輔導(dǎo)叢書:數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解
定 價(jià):35 元
- 作者:單憶南 ,唐軍軍 ,等 著
- 出版時(shí)間:2010/9/1
- ISBN:9787563522866
- 出 版 社:北京郵電大學(xué)出版社
- 中圖法分類:TP312C
- 頁碼:278
- 紙張:膠版紙
- 版次:1
- 開本:16開
《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》是為熟悉C++編程的讀者學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)而編寫的教學(xué)輔導(dǎo)書,可幫助讀者復(fù)習(xí)課程的基本內(nèi)容,并學(xué)會用C++使用相應(yīng)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)一定的算法和解決一些實(shí)際應(yīng)用問題,力爭使讀者在學(xué)完《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》之后,在課程的理解和掌握方面達(dá)到一個(gè)新的高度,《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》也可供從事本課程教學(xué)的教師參考書。
《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》共分十章,包括數(shù)據(jù)結(jié)構(gòu)概述、線性表、棧和隊(duì)列、串和字符串、數(shù)組和廣義表、樹和二義樹、圖、查找、排序,在全書最后給出了一套模擬試題及參考答案。
《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》每章內(nèi)容均包括各基本知識點(diǎn)的要點(diǎn)歸納,并精選一些經(jīng)典數(shù)據(jù)結(jié)構(gòu)書中的經(jīng)典例題(包括課程考試試題、主流教材課后難題以及考研真題),給出了解題思路和分析方法,題后提示了解題中應(yīng)注意的問題。力爭使讀者在盡可能短的時(shí)間內(nèi),鞏固課程基本概念,加深理解數(shù)據(jù)結(jié)構(gòu)的基本知識并融會貫通,熟練掌握基本的編程方法并舉一反三,不斷提高讀者的C++編程能力和利用各種數(shù)據(jù)結(jié)構(gòu)解決實(shí)際問題的能力。
《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》可供學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程(C++版)的讀者以及考研讀者和從事課程教學(xué)的教師參考。
《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》特點(diǎn): (1)結(jié)構(gòu)清晰、模式合理!稊(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》基本按照正規(guī)教學(xué)課本(主流教材)的順序安排,不是對所有知識點(diǎn)詳細(xì)鋪陳,而是對核心知識點(diǎn)和常考題型做重點(diǎn)講解。每章設(shè)計(jì)了兩個(gè)板塊,分別是:答疑解惑與典型題解。各內(nèi)容安排為: 答疑解惑:突出核心知識,對重點(diǎn)、難點(diǎn)、易混淆的知識點(diǎn)進(jìn)行剖析與解釋,讓學(xué)生掌握問題的本質(zhì)。包括對重要定理、定義和公式的剖析。 典型題解:精選出常考題型與考研真題進(jìn)行解析,增強(qiáng)學(xué)生的解題能力。《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》每一章都列舉了大量的題目,并對其進(jìn)行了詳細(xì)分析評注,以便于幫助讀者掌握本章的重點(diǎn)及迅速回憶本章的內(nèi)容。(題目來源:一是主流教材課后難題,二是課程考試試題,三是經(jīng)典好題,四是考研真題。) (2)針對性強(qiáng)、實(shí)用性強(qiáng)!稊(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》不是按照傳統(tǒng)輔導(dǎo)書那種“內(nèi)容簡介-例題分析-習(xí)題”的模式編寫,而是在聽取大量一線教師和學(xué)生們建議的基礎(chǔ)上,以突出針對性與實(shí)用性來安排內(nèi)容的。學(xué)生們最需要的是解決他們學(xué)習(xí)過程中的“疑惑”以及掌握解題方法!稊(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》正是以“答疑解惑與典型題解”為中心,因而具有很強(qiáng)的針對性與實(shí)用性。 (3)《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》重點(diǎn)定位在疑難解惑與解題方法上,開拓解題思路,提高分析問題的能力,不僅授人以“魚”,更在于授人以“漁”。 (4)《數(shù)據(jù)結(jié)構(gòu)(C++版)答疑解惑與典型題解》聘請執(zhí)教多年且有較高學(xué)術(shù)造詣的名師編寫,質(zhì)量高,內(nèi)容清晰。
本書是為熟悉C++的讀者學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)而編寫的教學(xué)輔導(dǎo)書,可幫助讀者復(fù)習(xí)課程的基本內(nèi)容,檢驗(yàn)各種數(shù)據(jù)結(jié)構(gòu)形式和算法的掌握程度,培養(yǎng)和提高用C++解決實(shí)際問題的能力,力爭使讀者在學(xué)完本書之后,在運(yùn)用數(shù)據(jù)結(jié)構(gòu)解決實(shí)際問題和C++編程方面都達(dá)到一個(gè)新的高度。
1.本書閱讀指南
全書共分10章。
第l章主要介紹數(shù)據(jù)結(jié)構(gòu)的基本概念,包括數(shù)據(jù)結(jié)構(gòu)的應(yīng)用、意義、時(shí)間復(fù)雜度、空間復(fù)雜度等內(nèi)容。
第2章主要介紹線性表這個(gè)數(shù)據(jù)結(jié)構(gòu)類型,包括線性表達(dá)定義和基本概念、線性表的存儲、循環(huán)鏈表和雙向鏈表等內(nèi)容。
第3章主要介紹棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu)類型,包括棧的定義和基本操作、棧的存儲、隊(duì)列的定義和基本操作、隊(duì)列的存儲結(jié)構(gòu)等內(nèi)容。
第4章主要介紹串?dāng)?shù)據(jù)結(jié)構(gòu)類型,包括串的操作、串的模式匹配,以及KMP算法的理解等內(nèi)容。
第5章主要介紹數(shù)組與廣義表數(shù)據(jù)結(jié)構(gòu)類型,包括多維數(shù)組、特殊矩陣的存儲、稀疏矩陣的存儲、廣義表的性質(zhì)和操作等內(nèi)容。
第6章主要介紹樹與二叉樹數(shù)據(jù)結(jié)構(gòu)類型,包括樹和二叉樹的性質(zhì)和定義、二叉樹的遍歷、表達(dá)式的二又樹表示、線索化二又樹、樹和森林、哈夫曼樹等內(nèi)容。
第7章主要介紹圖數(shù)據(jù)結(jié)構(gòu)類型,包括圖的基本性質(zhì)和概念、圖的存儲、圖的遍歷、圖的連同性、最小生成樹算法、最短路徑問題、拓?fù)渑判虻葍?nèi)容。
第8章主要介紹查找操作及相應(yīng)的數(shù)據(jù)結(jié)構(gòu),包括查找的定義、順序查找、折半查找、分塊查找、二叉排序樹、平衡二叉樹、B一樹、哈希表和散列表等內(nèi)容。
第9章主要介紹排序操作及應(yīng)用的數(shù)據(jù)結(jié)構(gòu),包括排序的概念、插入排序、冒泡排序、選擇排序、歸并排序、基數(shù)排序、幾種內(nèi)部排序時(shí)間復(fù)雜度空間復(fù)雜度的比較和外部排序等內(nèi)容。
第10章給出一套課程測試和一套研究生入學(xué)考試全真預(yù)測試題及參考答案。
2.本書的特色與優(yōu)點(diǎn)
本書編寫的指導(dǎo)思想是:在內(nèi)容上重視數(shù)據(jù)結(jié)構(gòu)的基本理論,利用C++作為程序語言進(jìn)行描述,覆蓋課程全部基本教學(xué)要求;書中習(xí)題主要來自于經(jīng)典數(shù)據(jù)結(jié)構(gòu)教材中的經(jīng)典習(xí)題,全書習(xí)題經(jīng)過編者精挑細(xì)選,難度適中,適合各專業(yè)學(xué)習(xí)本課程的學(xué)生;在形式上根據(jù)教學(xué)實(shí)踐經(jīng)驗(yàn)和對相關(guān)內(nèi)容的思考理解,簡明描述課程的基本知識點(diǎn)、重點(diǎn)和難點(diǎn)內(nèi)容,使學(xué)生迅速把握重點(diǎn)。
第1章 數(shù)據(jù)結(jié)構(gòu)基本概念
1.1 答疑解惑
1.1.1 為什么要用數(shù)據(jù)類型來描述數(shù)據(jù)結(jié)構(gòu)?
1.1.2 何為抽象數(shù)據(jù)類型(ADT)?
1.1.3 算法和程序有何區(qū)別?
1.1.4 怎樣理解數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)?
1.1.5 怎樣理解數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)課程中的核心地位?
1.1.6 如何計(jì)算算法的時(shí)間復(fù)雜度?
1.1.7 如何評價(jià)算法的好壞?
1.2 典型題解
題型1 數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識
題型2 時(shí)間與空間復(fù)雜度的計(jì)算
第2章 線性表
2.1 答疑解惑
2.1.1 如何理解線性表數(shù)據(jù)結(jié)構(gòu)?
2.1.2 線性表的順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的區(qū)別是什么?
2.1.3 帶頭結(jié)點(diǎn)的單鏈表和不帶頭結(jié)點(diǎn)的單鏈表的區(qū)別是什么?
2.1.4 鏈表的指針修改的次序?qū)Y(jié)果的影響是什么?
2.1.5 各種鏈表存儲結(jié)構(gòu)的特點(diǎn)是什么?
2.1.6 如何利用循環(huán)單鏈表實(shí)現(xiàn)隊(duì)列的操作?
2.1.7 如何應(yīng)用線性表?
2.1.8 順序表的聲明和基本運(yùn)算用C++如何描述?
2.2 典型題解
題型1 線性表的基本概念
題型2 線性表的存儲結(jié)構(gòu)
題型3 鏈表的插入和刪除
題型4 線性表元素查找
題型5 遞歸
題型6 歸并
題型7 單鏈表的應(yīng)用
題型8 其他鏈表及應(yīng)用
第3章 棧與隊(duì)列
3.1 答疑解惑
3.1.1 怎樣理解棧?
3.1.2 棧的順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的區(qū)別是什么?
3.1.3 在進(jìn)行人棧和出棧時(shí)應(yīng)注意的問題是什么?
3.1.4 如何理解多棧的作用?
3.1.5 兩個(gè)棧如何共享同一存儲空間?
3.1.6 如何應(yīng)用棧?
3.1.7 怎樣理解隊(duì)列?
3.1.8 如何處理循環(huán)隊(duì)列中的邊界條件?
3.1.9 隊(duì)列的順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的區(qū)別是什么?
3.1.10 如何理解雙隊(duì)列的作用?
3.1.11 如何應(yīng)用隊(duì)列?
3.2 典型題解
題型1 棧和隊(duì)列的基本概念
題型2 棧和隊(duì)列的基本操作
題型3 棧和隊(duì)列的狀態(tài)分析
題型4 遞歸算法和遞歸工作棧
題型5 用棧求表達(dá)式的值
題型6 棧和隊(duì)列的應(yīng)用
第4章 串
4.1 答疑解惑
4.1.1 怎樣理解串?
4.1.2 串的順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的優(yōu)缺點(diǎn)是什么?
4.1.3 串的基本操作
4.1.4 怎樣用共享堆求子串?
4.1.5 如何理解KMP算法?
4.1.6 串有何應(yīng)用?
4.2 典型題解
題型1 串的性質(zhì)和存儲
題型2 串的基本運(yùn)算
題型3 串的模式匹配
第5章 數(shù)組與廣義表
5.1 答疑解惑
5.1.1 數(shù)組存儲地址如何確定?
5.1.2 對稱矩陣如何壓縮存儲?
5.1.3 對稱矩陣的地址計(jì)算公式是什么?
5.1.4 三角矩陣如何壓縮存儲?
5.1.5 對角矩陣的概念是什么?
5.1.6 稀疏矩陣的三元組存儲結(jié)構(gòu)如何理解?
5.1.7 如何靈活運(yùn)用廣義表的表頭和表尾操作?
5.1.8 如何由廣義表表示得到其動態(tài)存儲表示?
5.1.9 如何由廣義表的動態(tài)存儲表示求廣義表表示?
5.1.10 廣義表如何運(yùn)算?
5.1.11 如何理解廣義表表示和二叉樹的內(nèi)在聯(lián)系?
5.2 典型題解
題型1 多維數(shù)組
題型2 特殊矩陣
題型3 稀疏矩陣
題型4 廣義表
第6章 樹與二叉樹
6.1 答疑解惑
6.1.1 樹的遞歸定義如何理解?
6.1.2 如何理解樹的性質(zhì)和基本概念?
6.1.3 如何理解二叉樹的性質(zhì)及其推廣?
6.1.4 如何理解二叉樹遍歷的非遞歸?
6.1.5 如何理解線索二叉樹實(shí)現(xiàn)二叉樹的非遞歸?
6.1.6 如何理解二叉樹中序線索化的算法?
6.1.7 二叉樹與樹或森林轉(zhuǎn)換的目的是什么?
6.1.8 建立二又樹有哪些方法?
6.1.9 森林的兩種遍歷都是哪些?
6.1.10 如何理解廣義表表示和二叉樹的內(nèi)在聯(lián)系?
6.1.11 哈夫曼樹的建立和哈夫曼編碼的構(gòu)造?
6.1.12 如何用二又樹表示表達(dá)式?
6.2 典型題解
題型1 樹的性質(zhì)
題型2 二叉樹的性質(zhì)
題型3 條件運(yùn)算
題型4 二叉樹的遍歷
題型5 根據(jù)遍歷結(jié)果還原樹
題型6 線索二叉樹
題型7 樹與森林
題型8 樹與森林
第7章 圖
7.1 答疑解惑
7.1.1 如何理解圖的定義?
7.1.2 如何理解圖的各種存儲結(jié)構(gòu)?
7.1.3 如何理解圖的遍歷?
7.1.4 如何理解圖遍歷的非遞歸算法?
7.1.5 如何理解圖的最小生成樹?
7.1.6 如何用圖的框架及其遍歷方法解決背包問題?
7.1.7 如何理解拓?fù)渑判虻淖饔?
7.1.8 如何理解Dikstra算法和F1oy算法的優(yōu)缺點(diǎn)?
7.1.9 如何理解關(guān)鍵路徑?
7.1.10 圖的應(yīng)用有哪些?
7.2 典型題解
題型1 圖的基本概念
題型2 圖的存儲結(jié)構(gòu)
題型3 圖的遍歷
題型4 圖的生成樹
題型5 圖的最短路
題型6 圖的拓?fù)渑判?br>題型7 圖的應(yīng)用
第8章 查找
8.1 答疑解惑
8.1.1 如何理解查找的基本概念?
8.1.2 如何理解順序查找中的監(jiān)視哨作用?
8.1.3 如何理解平均查找長度?
8.1.4 折半查找的前提條件及其優(yōu)缺點(diǎn)有哪些?
8.1.5 什么情況下使用分塊查找
8.1.6 二叉排序樹的特點(diǎn)有哪些?
8.1.7 如何調(diào)整平衡二叉樹?
8.1.8 深刻理解B一樹的定義及其動態(tài)調(diào)整
8.1.9 如何理解散列表的性質(zhì)?
8.1.10 如何理解散列表的沖突?
8.1.11 常用的散列函數(shù)有哪些?
8.2 典型題解
題型1 順序查找
題型2 二分查找
題型3 一維數(shù)組元素的移動
題型4 一維數(shù)組的排序
題型5 平衡二叉樹
題型6 B樹
題型7 哈希表
第9章 排序
9.1 答疑解惑
9.1.1 如何理解排序算法的穩(wěn)定性?
9.1.2 內(nèi)部排序和外部排序有什么區(qū)別?
9.1.3 如何將順序存儲結(jié)構(gòu)上的排序算法移植到鏈表上?
9.1.4 希爾排序?yàn)楹伪纫话愕牟迦肱判蛞咝?
9.1.5 如何理解堆排序?
9.1.6 如何在r進(jìn)制下運(yùn)用基數(shù)排序?
9.1.7 如何合理地采用適當(dāng)?shù)膬?nèi)部排序方法?
9.1.8 如何在^路歸并方法中使用敗者樹?
9.2 典型題解
題型1 排序基本概念
題型2 插人排序
題型3 冒泡排序
題型4 選擇排序
題型5 歸并排序
題型6 基數(shù)排序
題型7 各種內(nèi)部排序的比較
題型8 外部排序
第10章 課程測試與考研真題
10.1 課程測試
10.2 考研真題
10.3 課程測試解析
10.4 考研真題解析
參考文獻(xiàn)
采用數(shù)據(jù)類型來描述數(shù)據(jù)結(jié)構(gòu)是基于以下考慮:
(1)數(shù)據(jù)類型(Data Type)是一個(gè)值的集合和定義在這個(gè)值集上的一組操作的總稱。解決現(xiàn)實(shí)問題就必須進(jìn)行數(shù)據(jù)處理,而數(shù)據(jù)處理包括對數(shù)據(jù)進(jìn)行查找、插入、刪除、合并、排序、統(tǒng)計(jì)以及簡單計(jì)算等的操作過程。
(2)數(shù)據(jù)類型是高級程序設(shè)計(jì)語言中的一個(gè)基本概念,它和數(shù)據(jù)結(jié)構(gòu)的概念密切相關(guān)。一方面,在程序設(shè)計(jì)語言中,每一個(gè)數(shù)據(jù)都屬于某種數(shù)據(jù)類型。類型明顯或隱含地規(guī)定了數(shù)據(jù)的取值范圍、存儲方式以及允許進(jìn)行的運(yùn)算?梢哉J(rèn)為,數(shù)據(jù)類型是在程序設(shè)計(jì)中已經(jīng)實(shí)現(xiàn)了的數(shù)據(jù)結(jié)構(gòu)。另一方面,在程序設(shè)計(jì)過程中,當(dāng)需要引入某種新的數(shù)據(jù)結(jié)構(gòu)時(shí),總是借助編程語言所提供的數(shù)據(jù)類型來描述數(shù)據(jù)的存儲結(jié)構(gòu)。
(3)用高級語言數(shù)據(jù)類型來描述數(shù)據(jù)結(jié)構(gòu),更避免了低級語言的復(fù)雜性,增加了可讀性和簡潔性,又有利于算法的實(shí)現(xiàn)。