《數據結構——題解與拓展》是國家精品課程“數據結構”(上海交通大學)的主講教材之一,并與主教材《數據結構:思想與實現》(翁惠玉、俞勇編著)相配套。本書總結了主教材各章的主要內容以及重點難點,并對主教材中的習題進行了分析和解答。作為對主教材的補充,本書在大多數章中都增加了一個拓展部分,使學有余力的學生能夠進一步深入地學習數據結構。本書概念清楚,內容豐富,通過學習,可以幫助學生進一步鞏同數據結構的知識�!稊祿Y構——題解與拓展》可作為高等學校計算機及相關專業(yè)“數據結構”課程的教學輔導教材,也可以作為全國計算機專業(yè)碩士研究生入學考試的輔導用書。本書由翁惠玉,俞勇編著。
翁惠玉,畢業(yè)于上海交通大學,獲博士學位�,F為上海交通大學計算機系副教授,主要從事計算機網絡和信息系統(tǒng)的研究,并長期承擔程序設計的教學工作,主講計算機系ACM試點班和電信學院大平臺的程序設計課程,該課程于2004年被評為上海市精品課程。俞勇,1961年生,上海交通大學教授、博士生導師。1986年畢業(yè)于華東師范大學計算機系,獲得碩士學位。國家精品課程“數據結構”主持人,主編教材2本、譯著1本。先后主持教育部教育教學改革項目2項,獲得國家級和上海市教學成果獎6項,上海市優(yōu)秀教材獎1項,并兩次率隊奪得ACM國際大學生程序設計競賽全球總冠軍。從事Web搜索與挖掘研究,先后主持國家自然科學基金、國家863計劃等10多項,發(fā)表重要國際會議和期刊論文近百篇。曾獲得國務院特殊津貼,“全國師德標兵”、“上海市五一勞動獎章”、“寶鋼優(yōu)秀教師特等獎”、“上海市教學名師”等榮譽,曾被中央電視臺新聞聯播,上海教育臺、光明日報、文匯報等十多家媒體報道。
第1章 緒論
1.1 重點難點
1.2 主要內容
1.2.1 數據的邏輯結構
1.2.2 數據結構的存儲實現
1.2.3 算法分析
1.3 習題解答
1.3.1 簡答題
1.3.2 程序設計題
1.4 進一步拓展
1.4.1 最大公因子問題
1.4.2 遞歸函數的時間復雜度的計算
第2章 線性表
2.1 重點難點
2.2 主要內容
第1章 緒論
1.1 重點難點
1.2 主要內容
1.2.1 數據的邏輯結構
1.2.2 數據結構的存儲實現
1.2.3 算法分析
1.3 習題解答
1.3.1 簡答題
1.3.2 程序設計題
1.4 進一步拓展
1.4.1 最大公因子問題
1.4.2 遞歸函數的時間復雜度的計算
第2章 線性表
2.1 重點難點
2.2 主要內容
2.2.1 線性表的定義及基本運算
2.2.2 線性表的順序實現
2.2.3 線性表的鏈接實現
2.3 習題解答
2.3.1 簡答題
2.3.2 程序設計題
2.4 進一步拓展
2.4.1 字符串的存儲與匹配
2.4.2 模擬動態(tài)內存分配
第3章 棧
3.1 重點難點
3.2 主要內容
3.2.1 棧的基本概念
3.2.2 棧的順序實現
3.2.3 棧的鏈接實現
3.3 習題解答
3.3.1 簡答題
3.3.2 程序設計題
3.4 進一步拓展
3.4.1 基于線性表的棧的實現
3.4.2 迷宮問題
第4章 隊列
4.1 重點難點
4.2 主要內容
4.2.1 隊列的概念
4.2.2 隊列的順序實現
4.2.3 隊列的鏈接實現
4.3 習題解答
4.3.1 簡答題
4.3.2 程序設計題
4.4 進一步拓展
4.4.1 迷宮問題
4.4.2 火車車廂重排
第5章 樹
5.1 重點難點
5.2 主要內容
5.2.1 樹的定義和基本概念
5.2.2 二叉樹的基本概念
5.2.3 二叉樹的順序實現
5.2.4 二叉樹的鏈接實現
5.2.5 二叉樹遍歷的非遞歸實現
5.2.6 哈夫曼樹和哈夫曼編碼
5.2.7 樹、森林和二叉樹
5.3 習題解答
5.3.1 簡答題
5.3.2 程序設計題
5.4 進一步拓展
5.4.1 戶序線索樹
5.4.2 戶序線索樹的存儲
5.4.3 構造中序穿線
5.4.4 遍歷二叉線索樹
第6章 優(yōu)先級隊列
6.1 重點難點
6.2 主要內容
6.2.1 優(yōu)先級隊列的概念
6.2.2 二叉堆
6.2.3 貝努里隊列
6.3 習題解答
6.3.1 簡答題
6.3.2 程序設計題
6.4 進一步拓展
6.4.1 雙端隊列
6.4.2 最小語言集
第7章 集合與靜態(tài)查找表
7.1 重點難點
7.2 主要內容
7.2.1 集合的基本概念
7.2.2 查找及靜態(tài)查找表
7.2.3 無序表的查找
7.2.4 有序表的查找
7.3 習題解答
7.3.1 簡答題
7.3.2 程序設計題
第8章 查找樹
8.1 重點難點
8.2 主要內容
8.2.1 二叉查找樹
8.2.2 AVL樹
8.2.3 紅黑樹
8.2.4 伸展樹
8.2.5 B+樹
8.3 習題解答
8.3.1 簡答題
8.3.2 程序設計題
8.4 進一步拓展
8.4.1 線段樹
8.4.2 道路問題
第9章 散列表
9.1 重點難點
9.2 主要內容
9.2.1 散列函數
9.2.2 碰撞的解決
9.3 習題解答
9.3.1 簡答題
9.3.2 程序設計題
9.4 進一步拓展
第10章 排序
10.1 重點難點
10.2 主要內容
10.2.1 基本概念
10.2.2 插入排序
10.2.3 選擇排序
10.2.4 交換排序
10.2.5 歸并排序
10.2.6 外排序
10.3 習題解答
10.3.1 簡答題
10.3.2 程序設計題
10.4 進一步拓展
10.4.1 基數排序的思想
10.4.2 基數排序的實現
10.4.3 基數排序的性能
第11章 不相交集
11.1 重點難點
11.2 主要內容
11.2.1 不相交集的定義
11.2.2 不相交集的實現
11.3 習題解答
11.3.1 簡答題
11.3.2 程序設計題
11.4 進一步拓展
第12章 圖
12.1 重點難點
12.2 主要內容
12.2.1 圖的定義及術語
12.2.2 圖的存儲
12.2.3 圖的遍歷
12.3 習題解答
12.3.1 簡答題
12.3.2 程序設計題
12.4 進一步拓展
12.4.1 逆鄰接表
12.4.2 十字鏈表
12.4.3 鄰接多重表
第13章 最小生成樹
13.1 重點難點
13.2 主要內容
13.2.1 Kruskal算法
13.2.2 Prim算法
13.3 習題解答
13.3.1 簡答題
13.3.2 程序設計題
13.4 進一步拓展
第14章 最短路徑問題
14.1 重點難點
14.2 主要內容
14.2.1 單源最短路徑
14.2.2 所有結點對的最短路徑
14.3 習題解答
14.3.1 簡答題
14.3.2 程序設計題
第15章 算法設計基礎
15.1 重點難點
15.2 主要內容
15.2.1 枚舉法
15.2.2 貪婪法
15.2.3 分治法
15.2.4 動態(tài)規(guī)劃
15.2.5 回溯法
15.2.6 隨機算法
15.3 習題解答
15.3.1 簡答題
15.3.2 程序設計題
參考文獻