本書是與《數據結構(C語言版)(第3版)》配套學習的實驗指導,全書共分8章,涵蓋了數據結構課程的主要內容,同時兼顧了題目的廣度和深度。每章包括內容概述、典型題解析、自測試題及參考答案、思考題及參考答案、實驗題目及參考答案和課后習題解答。
出版說明
在我國高等教育逐步實現大眾化后,越來越多的高等學校將會面向國民經濟發展的第一線,為行業、企業培養各級各類高級應用型專門人才。為此,教育部已經啟動了“高等學校教學質量和教學改革工程”,強調要以信息技術為手段,深化教學改革和人才培養模式改革。如何根據社會的實際需要,根據各行各業的具體人才需求,培養具有顯著特色的人才,是我們共同面臨的重大問題。具體地說,培養具有一定專業特色和特定能力的計算機專業應用型人才是計算機教育要解決的重要問題。
為了適應21世紀人才培養的需要,培養具有特色的計算機人才,急需一批適合各種人才培養特點的計算機專業教材。目前,一些高校在計算機專業教學和教材改革方面已經做了大量工作,許多教師在計算機專業教學和科研方面已經積累了許多寶貴經驗。將他們的教學和科研成果轉化為教材的形式,向全國其他學校推廣,對于深化我國高等學校的教學改革具有十分重要的意義。
清華大學出版社在經過大量調查研究的基礎上,決定組織編寫《普通高校本科計算機專業特色教材精選》叢書。本套教材是針對當前高等教育改革的新形勢,以社會對人才的需求為導向,主要以培養應用型計算機人才為目標,立足課程改革和教材創新,廣泛吸納全國各地高等院校優秀教師參與編寫,從中精選出版確實反映計算機專業教學改革成果的特色教材,供普通高等院校計算機專業學生使用。
本套教材具有以下特點。
1. 編寫目的明確
本套教材是在深入研究各學校辦學特色的基礎上,面向普通高校的計算機專業學生編寫的。學生通過本套教材,主要學習計算機專業的基本理論和基本知識,接受利用計算機解決實際問題的基本訓練,培養研究和開發計算機系統,特別是應用系統的基本能力。
2. 理論知識與實踐訓練相結合
根據計算學科的三個學科形態及其關系,本套教材力求突出學科的理論與實踐緊密結合的特征,結合實例講解理論,使理論來源于實踐,又進一步指導實踐。學生通過實踐深化對理論的理解,更重要的是使學生學會理論方法的實際運用。在編寫教材時突出實用性,并做到通俗易懂、易教易學,使學生不僅知其然,還要知其所以然,更要會其如何然。
3. 注意培養學生的動手能力
力求做到: 既注重培養學生分析問題的能力,也注重培養學生解決問題的能力,以適應新經濟時代對人才的需要,滿足就業要求。對每種教材都增加了能力訓練部分的內容,以使學生通過學習和練習,能比較熟練地應用計算機知識解決實際問題。
4. 注重教材的立體化配套
對大多數教材都將陸續配套教師用課件、習題及其解答提示、學生上機實驗指導等輔助教學資源。對有些教材還提供能在我社網站上下載的文件,以方便教學。
由于各學校的培養目標、教學要求和辦學特色所不同,所以對特色教學的理解也不盡一致。我們懇切希望大家在使用教材的過程中,及時提出批評和改進意見,以便我們做好教材的修訂改版工作,使其日趨完善。
我們相信經過大家的共同努力,這套教材一定能成為特色鮮明、質量上乘的優秀教材。同時,我們也希望通過本套教材的編寫與出版,為“高等學校教學質量和教學改革工程”做出貢獻。
數據結構是計算機及相關專業的一門核心課程, 又是計算機專業碩士研究生入學考試的必考科目之一。該課程概念多、知識涉及面廣,其原理和算法十分抽象。為使學習者能盡快掌握課程的整體內容,我們編寫了本書。
本書是與《數據結構(C語言版)(第3版)》(秦玉平、馬靖善主編,清華大學出版社出版)配套的學習與實驗指導教材。全書共分8章,涵蓋了數據結構課程的主要內容,同時兼顧了題目的廣度和深度;每章包括內容概述、典型題解析、自測試題、思考題、實驗題目及參考答案(除第1章外)和習題解答。其中,內容概述給出了知識結構圖、考核要求、重點難點和核心考點;典型題解析的題目精選于各高校歷年研究生入學考試題目和具有豐富教學經驗的教師在教學實踐過程中設計、整理的題目,并給出了較詳細的解析;自測題包括選擇題、填空題、判斷題、計算操作題和算法設計分析題,并提供了參考答案;實驗題目依據考核要點和實際應用設計,題目多、覆蓋面廣,并提供了參考答案;思考題目根據常見問題設計,具有一定的擴展性和綜合性,并給出了參考答案;習題解答給出了主教材習題的詳細解答;最后在附錄中給出了3套模擬題及參考答案和10個課程設計題目。
本書第1章、第4章和附錄由馬靖善編寫;第2章、第3章、第5章和第6章由秦玉平編寫;第7章由王麗君編寫;第8章由張博編寫。全部書稿由秦玉平和王麗君審校,所有算法由秦玉平調試。
本書的算法都用C語言函數實現,無須修改就可被調用。盡管本書是針對《數據結構(C語言版)》第3版(秦玉平、馬靖善主編,清華大學出版社出版)編寫的,但也可與其他數據結構教材配套使用,并可作為考研復習指導書。
在本書編寫過程中,編者參考了大量有關數據結構的書籍和資料,在此對這些參考文獻的作者表示感謝。由于書中題目數量較大,加之編者水平有限,難免存在錯誤和不當之數據結構學習與實驗指導(C語言版)(第3版)前言處,懇請廣大讀者批評指正,以便再版時改進。
本書受遼寧省普通高等學校本科教育教學改革研究項目(UPRP20140661)資助。
作者2015年8月
第1章概述1
1.1內容概述1
1.2典型題解析2
1.2.1考查基本概念2
1.2.2考查算法分析3
1.3自測試題4
1.4思考題7
1.5習題解答7
1.6自測試題參考答案12
1.7思考題參考答案13
第2章線性表15
2.1內容概述15
2.2典型題解析16
2.2.1考查線性表的各種存儲結構及優缺點16
2.2.2考查線性表在各種存儲結構上插入和刪除操作18
2.2.3考查線性表在各種存儲結構上的結點順序
調整操作20
2.2.4考查線性表在各種存儲結構上的查找操作23
2.2.5考查線性表在各種存儲結構上的分解和
合并操作25
2.3自測試題27
2.4實驗題目30
2.5思考題31
2.6習題解答32
2.7自測試題參考答案46
2.8實驗題目參考答案492.9思考題參考答案54
數據結構學習與實驗指導(C語言版)(第3版)目錄
第3章特殊線性表55
3.1內容概述55
3.2典型題解析56
3.2.1考查棧的特點及其基本操作56
3.2.2考查隊列的特點及其基本操作58
3.2.3考查串的有關概念及基本操作61
3.3自測試題65
3.4實驗題目68
3.5思考題68
3.6課后習題解答69
3.7自測試題參考答案79
3.8實驗題目參考答案81
3.9思考題參考答案86
第4章數組和廣義表89
4.1內容概述89
4.2典型題解析90
4.2.1考查數組90
4.2.2考查廣義表93
4.3自測試題95
4.4實驗題目97
4.5思考題98
4.6習題解答98
4.7自測試題參考答案106
4.8實驗題目參考答案108
4.9思考題參考答案109
第5章樹和二叉樹111
5.1內容概述111
5.2典型題解析112
5.2.1考查二叉樹定義及其性質112
5.2.2考查二叉樹的存儲及其遍歷113
5.2.3考查線索二叉樹119
5.2.4考查森林(樹)的存儲及其遍歷121
5.2.5考查赫夫曼樹及其應用123
5.3自測試題124
5.4實驗題目127
5.5思考題128
5.6習題解答128
5.7自測試題參考答案142
5.8實驗題目參考答案144
5.9思考題參考答案150
第6章圖153
6.1內容概述153
6.2典型題解析154
6.2.1考查圖的基本概念154
6.2.2考查圖的存儲結構155
6.2.3考查圖的遍歷158
6.2.4考查生成樹和最小生成樹160
6.2.5考查圖的應用163
6.3自測試題166
6.4實驗題目170
6.5思考題171
6.6習題解答171
6.7自測試題參考答案179
6.8實驗題目參考答案181
6.9思考題參考答案185
第7章查找187
7.1內容概述187
7.2典型題解析188
7.2.1考查靜態查找表188
7.2.2考查動態查找表191
7.2.3考查散列表197
7.3自測試題203
7.4實驗題目206
7.5思考題206
7.6習題解答207
7.7自測試題參考答案217
7.8實驗題目參考答案219
7.9思考題參考答案223
第8章內部排序225
8.1內容概述225
8.2典型題解析226
8.2.1考查具體排序算法的排序過程226
8.2.2考查具體排序算法性能227
8.2.3考查算法分析和實現能力229
8.3自測試題231
8.4實驗題目234
8.5思考題234
8.6習題解答235
8.7自測試題參考答案245
8.8實驗題目參考答案247
8.9思考題參考答案250
附錄A模擬試題A253
附錄B模擬試題B261
附錄C模擬試題C269
附錄D課程設計題目277
參考文獻280
1.1內容概述1
1.2典型題解析2
1.2.1考查基本概念2
1.2.2考查算法分析3
1.3自測試題4
1.4思考題7
1.5習題解答7
1.6自測試題參考答案12
1.7思考題參考答案12
第2章線性表15
2.1內容概述15
2.2典型題分析16
2.2.1考查線性表的各種存儲結構及優缺點16
2.2.2考查線性表在各種存儲結構上的插入和刪除
操作18
2.2.3考查線性表在各種存儲結構上的結點順序調整
操作20
2.2.4考查線性表在各種存儲結構上的查找操作23
2.2.5考查線性表在各種存儲結構上的分解和合并
操作25
2.3自測試題27
2.4實驗題30
2.5思考題31
2.6習題解答31
2.7自測試題參考答案45數據結構學習與實驗指導(C語言版)目錄2.8實驗題參考答案48
2.9思考題參考答案53
第3章特殊線性表55
3.1內容概述55
3.2典型題解析56
3.2.1考查棧的特點及其基本操作56
3.2.2考查隊列的特點及其基本操作58
3.2.3考查串的有關概念及基本操作61
3.3自測試題65
3.4實驗題68
3.5思考題68
3.6習題解答69
3.7自測試題參考答案78
3.8實驗題參考答案80
3.9思考題參考答案85
第4章數組和廣義表87
4.1內容概述87
4.2典型題解析88
4.2.1考查數組88
4.2.2考查廣義表91
4.3自測試題93
4.4實驗題96
4.5思考題96
4.6習題解答96
4.7自測試題參考答案104
4.8實驗題參考答案106
4.9思考題參考答案107
第5章樹和二叉樹109
5.1內容概述109
5.2典型題解析110
5.2.1考查二叉樹定義及其性質110
5.2.2考查二叉樹的存儲及其遍歷111
5.2.3考查線索二叉樹117
5.2.4考查森林(樹)的存儲及其遍歷119
5.2.5考查赫夫曼樹及其應用121
5.3自測試題122
5.4實驗題125
5.5思考題126
5.6習題解答126
5.7自測試題參考答案138
5.8實驗題參考答案141
5.9思考題參考答案146
第6章圖149
6.1內容概述149
6.2典型題解析150
6.2.1考查圖的基本概念150
6.2.2考查圖的存儲結構151
6.2.3考查圖的遍歷154
6.2.4考查生成樹和最小生成樹156
6.2.5考查圖的應用159
6.3自測試題162
6.4實驗題166
6.5思考題167
6.6習題解答167
6.7自測試題參考答案175
6.8實驗題參考答案177
6.9思考題參考答案181
第7章查找183
7.1內容概述183
7.2典型題解析183
7.2.1考查靜態查找表183
7.2.2考查動態查找表187
7.2.3考查散列表193
7.3自測試題199
7.4實驗題201
7.5思考題202
7.6習題解答202
7.7自測試題參考答案212
7.8實驗題參考答案215
7.9思考題參考答案219
第8章內部排序221
8.1內容概述221
8.2典型題解析221
8.2.1考查具體排序算法的排序過程221
8.2.2考查具體排序算法性能223
8.2.3考查算法分析和實現能力225
8.3自測試題227
8.4實驗題230
8.5思考題230
8.6習題解答231
8.7自測試題參考答案241
8.8實驗題參考答案243
8.9思考題參考答案246
附錄A模擬試題A247附錄B模擬試題B255附錄C模擬試題C263附錄D課程設計題目271參考文獻274
上篇例題解析與習題解答
第1章Java語言概述與編程環境3
1.1例題解析3
1.2習題解答4
第2章Java編程基礎7
2.1例題解析7
2.2習題解答10
第3章控制結構13
3.1例題解析13
3.2習題解答15
第4章類與對象的基本概念27
4.1例題解析27
4.2習題解答30
第5章類的高級特性41
5.1例題解析41
5.2習題解答44
第6章常用類庫47
6.1例題解析47
6.2習題解答48
第7章異常59
7.1例題解析597.2習題解答61
第8章輸入輸出流65
8.1例題解析65
8.2習題解答67
第9章多線程73
9.1例題解析73
9.2習題解答76
JavaEE基礎教程實驗指導與習題解析目錄第10章數據庫編程81
10.1例題解析81
10.2習題解答83
第11章Java Web概述與Web發布89
11.1例題解析89
11.2習題解答90
第12章JSP技術93
12.1例題解析93
12.2習題解答97
第13章JavaBean105
13.1例題解析105
13.2習題解答106
第14章Servlet基礎知識113
14.1例題解析113
14.2習題解答116
第15章Servlet的會話跟蹤技術119
15.1例題解析119
15.2習題解答121
第16章過濾器127
16.1例題解析127
16.2習題解答129
第17章EL與JSTL133
17.1例題解析133
17.2習題解答135
第18章JSP自定義標簽137
18.1例題解析137
18.2習題解答139
中篇實驗
實驗1Java開發環境與開發工具145
實驗目標145
實驗任務145
實驗2Java編程基礎149
實驗目標149
實驗任務149
實驗3控制結構155
實驗目標155
實驗任務155
實驗4類與對象157
實驗目標157
實驗任務157
實驗5抽象類與接口161
實驗目標161
實驗任務161
實驗6常用類庫167
實驗目標167
實驗任務167
實驗7異常171
實驗目標171
實驗任務171
實驗8輸入輸出流175
實驗目標175
實驗任務175
實驗9多線程177
實驗目標177
實驗任務177
實驗10數據庫編程181
實驗目標181
實驗任務181
實驗11JSP開發基礎189
實驗目標189
實驗任務189
實驗12JSP技術與JavaBean195
實驗目標195
實驗任務195
實驗13Servlet基礎203
實驗目標203
實驗任務203
實驗14Servlet會話跟蹤技術207
實驗目標207
實驗任務207
實驗15過濾器213
實驗目標213
實驗任務213
實驗16EL表達式與JSTL217
實驗目標217
實驗任務217
下篇項目實訓——網上書店
需求描述221
開發環境221
案例采用的技術221
需求分析221
案例實施222