出版時間:2012-2 出版社:清華大學出版社 作者:陳寶平 編
前言
數據結構是計算機專業(yè)和信息管理專業(yè)一門重要的專業(yè)基礎課,只要涉及程序的地方,均要用到數據結構的知識,許多課程(如操作系統(tǒng)、編譯原理、數據庫和人工智能等)也要用到數據結構的知識。其主要內容是研究和解決非數值計算的問題,討論如何合理地組織、存儲和處理數據的方法與技術; 其主要任務是使讀者掌握數據組織、存儲和處理的常用方法和常用的算法思想及在實際中的應用技巧,為今后學習后續(xù)專業(yè)課和進行軟件開發(fā)打下良好的基礎?! ”緯木帉懻唛L期從事數據結構的教學,對課程的難點和重點有比較深切的體會。在總結講授數據結構課程的基礎上,對多年傳授的數據結構教學內容進行合理的重組,既強調數據結構的原理和方法,又注重其實踐性與實用性。本書希望能夠引起讀者對數據結構課程的興趣,提高對數據結構課程的重要性、必要性的認識,特別希望能夠提高數據結構課程的教學實效,讓讀者滿意并有收獲?! ”緯敿毥榻B了各種基本的數據結構,包括線性結構、數組和廣義表、樹(層次)結構和圖結構; 基本的存儲結構,包括順序(數組)結構、鏈接結構、索引結構和散列結構,以及其中的一種或多種結構的組合及應用。本書具有以下特色: (1) 采用C++版,注重面向對象的編程,強調算法的邏輯性、嚴謹性、技巧性以及時間復雜度等,弱化C++語言中的繼承、派生等機制?! 。?) 本著“加強基礎,注重算法,因材施教,案例驅動”的教育理念,在算法的設計上做了大膽改革,為了更好地理解理論知識,每章之后都配有應用實例,提倡從實用性和實踐性的角度學習數據結構?! 。?) 完全包含2011年計算機統(tǒng)考大綱中數據結構指定的相關知識點?! 。?) 通俗易懂、圖文并茂,詳略得當,便于從事計算機工作的人員自學?! ”緯?,5,10章及所有的課后習題由阿雅娜編寫,第2,3,4章由張巨萍編寫,第6,8章由陳寶平編寫,第7,9章由孫寶軍編寫。陳寶平對全書的文字風格、內容、算法實現等方面進行了細致的修改和統(tǒng)稿。作者在此對趙俊嵐教授、喬曉華教授和王彪教授表示衷心的感謝,他們對此書提出的建議和意見都彌足可貴。同時感謝王景龍、魏娜、李澤申等同學,仔細閱讀本書的預印版,驗證了書稿的部分算法并調試了代碼?! ”緯η笠酝ㄋ椎恼Z言和實例描述數據結構課程的內容。實例豐富,圖表清晰,深入淺出,易于讀者融會貫通。根據C++的特點設計與實現了各種數據結構的存儲結構和算法,有助于讀者進一步掌握C++的編程思想、方法和技術內涵。 由于編者水平有限,書中錯誤和不妥之處在所難免,懇請讀者與同行批評指正。 陳寶平
內容概要
數據結構是計算機專業(yè)教學計劃中的核心課程,也是計算機及相關專業(yè)考研和水平等級考試的必考科目。要從事和計算機科學與技術相關的工作,尤其是計算機應用領域的開發(fā)和研制工作,必須具備堅實的數據結構基礎?!?1世紀高等學校規(guī)劃教材·計算機科學與技術:數據結構(C++版)》介紹了學習數據結構所用到的預備知識,敘述了數據結構、算法以及抽象數據類型的概念,介紹了線性表、棧、隊列和串、數組和廣義表、樹和二叉樹、圖等常用數據結構,討論了常用的查找、排序和索引技術?! ?1世紀高等學校規(guī)劃教材·計算機科學與技術:數據結構(C++版)》內容豐富,層次清晰,講解深入淺出,可作為計算機及相關專業(yè)本??茢祿Y構課程的教材,也可供從事計算機軟件開發(fā)和應用的工程技術人員閱讀、參考。
書籍目錄
第1章 論1.1 為什么要學習數據結構1.2 什么是數據結構1.2.1 數據的邏輯結構1.2.2 數據的存儲結構1.2.3 抽象數據類型1.3 算法與算法分析1.3.1 算法1.3.2 算法的設計要求1.3.3 算法效率的量度1.3.4 算法的設計方式習題第2章 性表2.1 線性表的邏輯結構2.1.1 線性表的定義2.1.2 線性表的抽象數據類型定義2.2 線性表的順序表示和實現2.2.1 順序存儲結構的定義2.2.2 基本操作在順序表中的實現2.2.3 順序存儲結構的特點2.3 線性表的鏈式表示和實現2.3.1 單鏈表2.3.2 雙向鏈表2.3.3 循環(huán)鏈表2.3.4 鏈式存儲結構的特點2.4 一元多項式求和2.4.1 一元多項式的表示2.4.2 一元多項式的求和習題第3章 棧和隊列3.1 棧3.1.1 棧的抽象數據類型定義3.1.2 棧的實現3.2 棧的應用舉例3.3 棧與遞歸3.4 隊列3.4.1 隊列的抽象數據類型定義3.4.2 隊列的實現3.4.3 隊列的應用習題第4章 串4.1 串類型的定義4.2 串的存儲結構4.2.1 串的順序存儲結構4.2.2 堆分配存儲表示4.2.3 串的塊鏈存儲表示4.3 串的模式匹配算法4.3.1 求子串的定位函數4.3.2 模式匹配的一種改進算法4.4 串的應用習題第5章 數組和廣義表5.1 數組5.1.1 數組的定義5.1.2 數組的存儲5.1.3 特殊矩陣5.1.4 稀疏矩陣5.2 廣義表5.2.1 廣義表的定義5.2.2 廣義表的存儲結構5.2.3 廣義表的遞歸算法5.2.4 廣義表的應用習題第6章 樹與二叉樹6.1 樹的定義與基本術語6.2 二叉樹6.2.1 二叉樹的定義6.2.2 二叉樹的性質6.2.3 二叉樹的存儲結構6.3 二叉樹的遍歷6.3.1 遞歸遍歷二叉樹6.3.2 應用二叉樹遍歷的實例6.4 線索二叉樹6.5 樹與森林6.5.1 樹的存儲表示6.5.2 森林與二叉樹的轉換6.5.3 樹的遍歷6.5.4 森林的遍歷6.6 樹的應用6.6.1 堆6.6.2 哈夫曼樹與編碼習題第7章 集合與搜索7.1 集合及其表示7.1.1 集合的定義7.1.2 集合的抽象數據類型7.1.3 用位向量實現集合7.2 靜態(tài)搜索結構7.2.1 搜索的定義7.2.2 靜態(tài)搜索結構7.2.3 順序搜索7.2.4 基于有序順序表的折半搜索7.2.5 分塊搜索7.3 二叉搜索樹7.3.1 二叉搜索樹的定義7.3.2 二叉搜索樹的搜索7.3.3 二叉搜索樹的插入7.3.4 二叉搜索樹的建立7.3.5 二叉搜索樹的刪除7.4 AVL樹7.4.1 AVL樹的定義7.4.2 最小不平衡二叉樹7.4.3 不平衡二叉樹的調整方法7.4.4 建立平衡二叉樹舉例7.5 應用舉例計算機登錄驗證習題第8章 圖8.1 圖的定義8.1.1 圖的定義與相關術語8.1.2 圖的抽象數據類型8.2 圖的存儲結構8.2.1 數組表示法8.2.2 鄰接表表示法8.2.3 鄰接多重表表示法8.2.4 十字鏈表法8.3 圖的遍歷8.3.1 深度優(yōu)先遍歷8.3.2 廣度優(yōu)先遍歷8.4 圖的最小生成樹8.4.1 Prim算法8.4.2 Kruskal算法8.5 最短路徑8.5.1 單源最短路徑8.5.2 每對頂點的最短路徑8.6 拓撲排序8.7 關鍵路徑8.8 應用實例習題第9章 排序9.1 概述9.2 插入排序9.2.1 直接插入排序9.2.2 折半插入排序9.2.3 希爾排序9.3 交換排序9.3.1 冒泡排序9.3.2 快速排序9.4 選擇排序9.4.1 直接選擇排序9.4.2 堆排序9.5 歸并排序9.5.1 歸并排序概述9.5.2 遞歸的歸并排序算法9.6 基數排序9.6.1 多關鍵碼排序9.6.2 鏈式基數排序9.7 各種排序方法的比較討論9.8 外部排序的方法習題第10章 索引結構和散列10.1 靜態(tài)索引結構10.1.1 線性索引10.1.2 倒排表10.1.3 m路靜態(tài)索引樹10.2 動態(tài)索引結構10.2.1 動態(tài)的m路靜態(tài)索引樹10.2.2 B_樹10.2.3 B_樹的插入10.2.4 B_樹的刪除10.2.5 B+樹10.3 散列10.3.1 散列函數10.3.2 開散列方法10.3.3 閉散列方法10.3.4 散列表的實現10.3.5 散列表分析習題參考文獻
圖書封面
評論、評分、閱讀與下載